element-in-view-rgermain
Version:
ElementInView is a library that allows to know if an element is displayed in the viewport of the client, it's compatible with overflow parents and offset!
2 lines (1 loc) • 2.44 kB
JavaScript
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).elementInView={})}(this,(function(t){"use strict";function e(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function n(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function r(t,e){return u(t,e)&&c(t,e)}function o(t,e){return i(t,e)&&f(t,e)}function f(t,e){var n=t.left-(e.offsetX||e.offsetLeft||0);return e.parent.left<=n&&e.parent.right>=n}function i(t,e){var n=t.right+(e.offsetX||e.offsetRight||0);return e.parent.left<=n&&e.parent.right>=n}function u(t,e){var n=t.top-(e.offsetY||e.offsetTop||0);return e.parent.top<=n&&e.parent.bottom>=n}function c(t,e){var n=t.bottom+(e.offsetY||e.offsetBottom||0);return e.parent.top<=n&&e.parent.bottom>=n}function a(t,e){return e.partial?i(t,e)&&(u(t,e)||c(t,e)):i(t,e)&&r(t,e)}function p(t,e){return e.partial?f(t,e)&&(u(t,e)||c(t,e)):f(t,e)&&r(t,e)}function l(t,e){return e.partial?u(t,e)&&(f(t,e)||i(t,e)):u(t,e)&&o(t,e)}function s(t,e){return e.partial?c(t,e)&&(f(t,e)||i(t,e)):c(t,e)&&o(t,e)}function b(t,e){return e.partial?(c(t,e)||u(t,e))&&(f(t,e)||i(t,e)):o(t,e)&&r(t,e)}function g(t,r,o){var f=function(t){for(var r=1;r<arguments.length;r++){var o=null!=arguments[r]?arguments[r]:{};r%2?n(Object(o),!0).forEach((function(n){e(t,n,o[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(o)):n(Object(o)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(o,e))}))}return t}({partial:!1,parent:null,offsetLeft:0,offsetRight:0,offsetTop:0,offsetBottom:0},r);f.parent?f.recursive=!1:(f.recursive=!0,f.parent=t.parentElement),f.parent=f.parent.getBoundingClientRect();var i=t.getBoundingClientRect(),u=o(i,f);if(!f.recursive||!u)return u;for(var c=t.parentElement;null!=c;){if(f.parent=c.getBoundingClientRect(),!o(i,f))return!1;c=c.parentElement}return!0}t.all=function(t,e){return g(t,e,b)},t.bottom=function(t,e){return g(t,e,s)},t.left=function(t,e){return g(t,e,p)},t.right=function(t,e){return g(t,e,a)},t.top=function(t,e){return g(t,e,l)},Object.defineProperty(t,"__esModule",{value:!0})}));