mirror of
https://github.com/wahyd4/cdnjs.git
synced 2026-08-20 18:27:57 +10:00
1 line
2.0 KiB
JavaScript
1 line
2.0 KiB
JavaScript
var Scrollpoints=function(a){"use strict";var b={},c=[],d={once:!0,reversed:!1,when:"entered",offset:0},e=function(b){b===a&&(b={});var c={};for(var e in d)c[e]=b.hasOwnProperty(e)?b[e]:d[e];return c},f=function(a){return a.offsetTop},g=function(a){return f(a)+a.offsetHeight},h=function(){return window.scrollY||document.documentElement.scrollTop},i=function(){return h()+window.innerHeight},j=function(a){return a.reversed?!a.done&&h()<=g(a.element)-a.offset:!a.done&&i()>=f(a.element)+a.offset},k=function(b,c){var d=c===a?b.reversed:c;return d?!b.done&&h()<=f(b.element)-b.offset:!b.done&&i()>=g(b.element)+b.offset},l=function(a){return a.reversed?!a.done&&i()<=g(a.element)-a.offset:!a.done&&h()>=f(a.element)+a.offset},m=function(b,c){var d=c===a?b.reversed:c;return d?!b.done&&i()<=f(b.element)-b.offset:!b.done&&h()>=g(b.element)+b.offset},n=function(){c.forEach(function(a){(!a.active&&("leaving"===a.when||"left"===a.when)&&k(a,!1)||!a.active&&("entering"===a.when||"entered"===a.when)&&m(a,!1))&&(a.active=!0);var c="entered"===a.when&&k(a)||"entering"===a.when&&j(a)||"leaving"===a.when&&l(a)||"left"===a.when&&m(a);a.active&&c&&(a.callback.call(window,a.element),a.done=!0,a.once||("entered"===a.when&&b.add(a.element,function(){a.done=!1},{when:"leaving",reversed:!a.reversed}),"entering"===a.when&&b.add(a.element,function(){a.done=!1},{when:"left",reversed:!a.reversed}),"left"===a.when&&b.add(a.element,function(){a.done=!1},{when:"entering",reversed:!a.reversed}),"leaving"===a.when&&b.add(a.element,function(){a.done=!1},{when:"entered",reversed:!a.reversed})))})};return b.add=function(a,b,d){var f=e(d),g=!0;(("entered"===f.when||"entering"===f.when)&&f.reversed||("left"===f.when||"leaving"===f.when)&&f.reversed)&&(g=!1),c.push({element:a,callback:b,once:f.once,reversed:f.reversed,when:f.when,offset:f.offset,active:g,done:!1}),n()},b.configure=function(a){d=e(a)},window.addEventListener("scroll",n),b}();module&&module.exports&&(module.exports=Scrollpoints),exports&&(exports=Scrollpoints); |