UNPKG

react-slim-bounds

Version:

using media query more convenient

1 lines 1.3 kB
"use strict";function resizeListener(e){var i=e.target||e.srcElement;i.resizeAnimation&&cancelFrame(i.resizeAnimation),i.resizeAnimation=requestFrame(function(){var n=i.resizeTrigger;n.resizeListener.forEach(function(i){i.call(n,e)})})}function objectLoad(e){this.contentDocument.defaultView.resizeTrigger=this.resizeElement,this.contentDocument.defaultView.addEventListener("resize",resizeListener)}function addChildTrigger(e){var i=document.createElement("object");i.setAttribute("style","display: block; position: absolute; top: 0; left: 0; height: 100%; width: 100%; overflow: hidden; pointer-events: none; z-index: -1;"),i.setAttribute("tabindex","-1"),i.resizeElement=e,i.onload=objectLoad,i.data="about:blank",e.appendChild(i),e.resizeTrigger=i}var requestFrame=function(e){var i=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||function(e){return window.setTimeout(e,1e3/60)};return i(e)},cancelFrame=function(e){var i=window.cancelAnimationFrame||window.mozCancelAnimationFrame||window.webkitCancelAnimationFrame||window.clearTimeout;return i(e)};module.exports={add:function(e,i){e.resizeListener||(e.resizeListener=[],addChildTrigger(e)),e.resizeListener.push(i)},remove:function(e,i){e.resizeListener.splice(e.resizeListener.indexOf(i),1)}};