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.
Leave a Reply