jquery-helpers
Version:
A set of jQuery Helpers for front-end development.
1 lines • 1.65 kB
JavaScript
window.matchMedia||(window.matchMedia=function(){"use strict";var t=window.styleMedia||window.media;if(!t){var n,i=document.createElement("style"),e=document.getElementsByTagName("script")[0];i.type="text/css",i.id="matchmediajs-test",e.parentNode.insertBefore(i,e),n="getComputedStyle"in window&&window.getComputedStyle(i,null)||i.currentStyle,t={matchMedium:function(e){var t="@media "+e+"{ #matchmediajs-test { width: 1px; } }";return i.styleSheet?i.styleSheet.cssText=t:i.textContent=t,"1px"===n.width}}}return function(e){return{matches:t.matchMedium(e||"all"),media:e||"all"}}}()),function(){if(window.matchMedia&&window.matchMedia("all").addListener)return;var d=window.matchMedia,a=d("only all").matches,r=!1,t=0,o=[],c=function(e){clearTimeout(t),t=setTimeout(function(){for(var e=0,t=o.length;e<t;e++){var n=o[e].mql,i=o[e].listeners||[],a=d(n.media).matches;if(a!==n.matches){n.matches=a;for(var r=0,c=i.length;r<c;r++)i[r].call(window,n)}}},30)};window.matchMedia=function(e){var t=d(e),i=[],n=0;return t.addListener=function(e){a&&(r||(r=!0,window.addEventListener("resize",c,!0)),0===n&&(n=o.push({mql:t,listeners:i})),i.push(e))},t.removeListener=function(e){for(var t=0,n=i.length;t<n;t++)i[t]===e&&i.splice(t,1)},t}}(),function(c){c.fn.matchMedia=function(e,t,n){if(!window.matchMedia)return console.error("jQuery().matchMedia() needs 'https://github.com/paulirish/matchMedia.js/' to run on old browsers.");var i=window.matchMedia(e),a=i.matches;function r(e){if(c.isFunction(t)&&!c.isFunction(n))return t.call(null,e.matches);e.matches?c.isFunction(t)&&t.call():c.isFunction(n)&&n.call()}return r(i),i.addListener(r),a}}(jQuery);