I am working on a Foundation 5 website and i would like to detect the breakpoint change when the user resize the browser window. Here is a workaround found in the Foundation Forum.
1. Add the following piece of HTML to your website. Since i am working with Drupal 7 with the Foundaiton 5 theme, i just add it to the page.tpl.php in the subtheme.
<!-- For breakpoints checking in js --> <div id="breakpoints"> <div class="breakpoint-small show-for-small-only" data-size="small"></div> <div class="breakpoint-medium show-for-medium-only" data-size="medium"></div> <div class="breakpoint-large show-for-large-only" data-size="large"></div> </div>
2. Hide the above HTML in the styling sheets. Here is the SASS code.
#breakpoints {
height:0px;
div {
width:1px;
height:0px;
visibility:hidden;
}
}
3. In the Javascript file, implement the $(window).resize() as follow.
// Breakpoints checking in js
var breakpoint = $('#breakpoints div:visible').first().data('size');
var resizeTimeoutId;
$(window).resize(function() {
clearTimeout(resizeTimeoutId);
resizeTimeoutId = setTimeout(function() {
breakpoint = $('#breakpoints div:visible').first().data('size');
console.log(breakpoint); // For debug
switch (breakpoint) {
case 'small':
// Codes when resize to small screen
break;
case 'medium':
// Codes when resize to medium screen
break;
case 'large':
// Codes when resize to large screen
break;
default:
break;
}
}, 250); // The delay time in ms for the action to take place after resize.
});
Done =)
Reference: Foundation Forum – Determine screen-size media query using Javascript
