@speaker-ender/js-measure
Version:
DOM Measurement Tools
3 lines (2 loc) • 2.59 kB
JavaScript
var r=typeof window=="object",i=typeof document<"u"&&document.documentElement,w=()=>{if(i){let e=document.body,t=document.documentElement;return t?Math.max(e.scrollHeight,e.offsetHeight,t.clientHeight,t.scrollHeight,t.offsetHeight):0}return 0},d=()=>r&&i?window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth:0,u=()=>r&&i?window.innerHeight||document.documentElement.clientHeight||document.body.clientHeight:0,l=()=>r&&i?window.pageYOffset||document.documentElement.scrollTop:0,m=e=>e?e.scrollLeft:typeof window<"u"&&document&&document.documentElement?window.pageXOffset||document.documentElement.scrollLeft:0,f=(e,t)=>e[t],s=(e,t)=>(t||e.getBoundingClientRect()).height,a=(e,t)=>{let n=window.getComputedStyle(e),o=parseFloat(n.marginTop)+parseFloat(n.marginBottom);return s(e,t)+o},R=(e,t,n)=>t?a(e,n):s(e),g=(e,t)=>(t||e.getBoundingClientRect()).width,p=(e,t)=>{let n=window.getComputedStyle(e),o=parseFloat(n.marginLeft)+parseFloat(n.marginRight);return g(e,t)+o},E=(e,t,n)=>t?p(e,n):g(e,n),D=(e,t="viewport",n)=>{n=n||e.getBoundingClientRect();let o;switch(t){case"document":return n.top+l();case"viewport":return e.getBoundingClientRect().top;default:return o=t.getBoundingClientRect(),n.top-o.top}},h=(e,t="viewport",n)=>{n=n||e.getBoundingClientRect();let o;switch(t){case"document":return n.bottom+l();case"viewport":return e.getBoundingClientRect().bottom;default:return o=t.getBoundingClientRect(),n.bottom-o.bottom}},M=(e,t="viewport",n)=>{n=n||e.getBoundingClientRect();let o,c;switch(t){case"document":return c=t?m():r&&i?window.pageXOffset||document.documentElement.scrollLeft:0,n.left+c;case"viewport":return n.left;default:return o=t.getBoundingClientRect(),o.left-n.left}},O=(e,t="viewport",n)=>{n=n||e.getBoundingClientRect();let o,c;switch(t){case"document":return c=d(),c-n.right;case"viewport":return n.right;default:return o=t.getBoundingClientRect(),o.right-n.right}},x=(e,t)=>(t=t||e.getBoundingClientRect(),t.top>=0&&t.left>=0&&t.bottom<=u()&&t.right<=d()),b=(e,t,n)=>{n=n||e.getBoundingClientRect(),t=t||u();let o=h(e,"viewport",n);return(Math.min(Math.max(o,0),n.height)-Math.max(o-t,0))/(n.height/100)};export{h as bottomEdgeDistance,w as documentHeight,i as hasDocument,r as hasWindow,R as height,x as inViewport,M as leftEdgeDistance,b as percentInViewport,f as propFromRect,s as rawHeight,a as rawHeightWithMargin,g as rawWidth,p as rawWidthWithMargin,O as rightEdgeDistance,m as scrollLeftDistance,l as scrollTopDistance,D as topEdgeDistance,E as width,u as windowHeight,d as windowWidth};
//# sourceMappingURL=index.esm.js.map