Foundation - JavaScript Utilities


Advertisements

Foundation includes JavaScript utilities that are used to add common functionalities. It is very helpful and easy to use. This JavaScript utilities library can be found in the folder Your_folder_name/node_modules/foundation-sites/js

Box

  • Foundation.Box library consists of a couple of methods.

  • The js/foundation.util.box.js is the script filename, which can be included while writing the code.

  • Either jQuery objects or plain JavaScript elements can be pass to both methods.

var dims = Foundation.Box.GetDimensions(element);

The returned object specifies the dimension of the element as −

{
   height: 54,
   width: 521,
   offset: {
      left: 198,
      top: 1047
   },
   
   parentDims: {
      height: ...    //The same format is share for parentDims and windowDims as the element dimensions.
   },
   
   windowDims: {
      height: ...
   }
}
  • Function ImNotTouchingYou is included.

  • Based on the passed element, a Boolean value is returned, which is either a conflict with edge of the window or optional or a parent element.

  • The two options specified in the line given below i.e. leftAndRightOnly, topAndBottomOnly is used to identify the collision on only one axis.

var clear = Foundation.Box.ImNotTouchingYou (
   element [, parent, leftAndRightOnly, topAndBottomOnly]);

Keyboard

  • There are many methods in Foundation.Keyboard, which helps to make the keyboard event interaction easy.

  • The js/foundation.util.keyboard.js is the script filename, which can be included while writing the code.

  • The object Foundation.Keyboard.keys consist key/value pairs, which keys are used in the framework more frequently.

  • Whenever the key is pressed then Foundation.Keyboard.parseKey is called to get a string. This helps to manage your own keyboard inputs.

The following code is used to find all focusable elements within the given $element. Therefore, there is no need of writing any function and selector by you.

var focusable = Foundation.Keyboard.findFocusable($('#content'));
  • The handleKey function is a main function of this library.

  • This method is used to handle the keyboard event; it can be called whenever any plugin is registered with the utility.

Foundation.Keyboard.register('pluginName', {
   'TAB': 'next'
});

...//in event callback
Foundation.Keyboard.handleKey(event, 'pluginName', {
   next: function(){
      //do stuff
   }
});

The Foundation.Keyboard.register function can be called when you want to use your own key bindings.

MediaQuery

  • MediaQuery library is a backbone of all responsive CSS technique.

  • The js/foundation.util.mediaQuery.js is the script filename, which can be included while writing the code.

  • The Foundation.MediaQuery.atLeast('large') is used to check if the screen is at least as wide as a breakpoint.

  • The Foundation.MediaQuery.get('medium') gets the media query of a breakpoint.

  • The Foundation.MediaQuery.queries are an array of media queries, Foundation uses for breakpoints.

  • The Foundation.MediaQuery.current is a string of the current breakpoint size.

Foundation.MediaQuery.get('medium');
Foundation.MediaQuery.atLeast('large');
Foundation.MediaQuery.queries;
Foundation.MediaQuery.current;

The following code broadcasts the media query change on the window.

$(window).on('changed.zf.mediaquery', function(event, newSize, oldSize){});

Motion & Move

  • Foundation.Motion javascript is similar to Motion UI library, which is included in the Foundation 6. It is used to create custom CSS transitions and animations.

  • The js/foundation.util.motion.js is the script filename, which can be included while writing the code.

  • Foundation.Move is used to make CSS3 backed animation simple and elegant.

  • requestAnimationFrame(); method tells the browser to perform an animation; it requests that your animation function be called before the browser performs the next repaint.

Foundation.Move(durationInMS, $element, function() {
   //animation logic
});

When the animation is completed, finished.zf.animate is fired.

Timer & Images Loaded

Orbit uses both, the function timer and the image loaded. The js/foundation.util.timerAndImageLoader.js is the script filename, which can be included while writing the code.

var timer = new Foundation.Timer($element, {duration: ms, infinite: bool}, callback);

The image-loaded method runs a callback function in your jQuery collection when images are completely loaded.

Foundation.onImagesLoaded($images, callback);

Touch

  • The methods are used for adding pseudo drag events and swipe to elements.

  • The js/foundation.util.touch.js is the script filename, which can be included while writing the code.

  • The addTouch method is used to bind elements to touch events in the Slider plugin for mobile devices.

  • The spotSwipe method binds the elements to swipe events in the Orbit plugin for mobile devices.

$('selector').addTouch().on('mousemove', handleDrag);

$('selector').spotSwipe().on('swipeleft', handleLeftSwipe);

Triggers

  • It triggers the specified event for the selected elements.

  • The js/foundation.util.triggers.js is the script filename, which can be included while writing the code.

  • The triggers are utilized in many Foundation plugin.

$('selector').on('open.zf.trigger', handleOpen);
$('selector').on('close.zf.trigger', handleClose);
$('selector').on('toggle.zf.trigger', handleToggle);

The following two methods are used in this library i.e. resize and scroll.

  • The resize() method triggers the resize event when a resize event occurs.

  • The scroll() method triggers the scroll event when a scroll event occurs.

$('#someId').on('scrollme.zf.trigger', handleScroll);
$('#someId').on('resizeme.zf.trigger', handleResize);

Miscellaneous

  • Foundation contains few features in the core library, which are used in many places.

  • The js/foundation.core.js is the script filename, which can be included while writing the code.

  • Foundation.GetYoDigits([number, namespace]) returns a random base-36 uid with namespacing. It returns the string length of 6 characters long by default.

  • Foundation.getFnName(fn) returns a JavaScript function name.

  • Foundation.transitionend occurs when CSS transition is completed.

Advertisements