futura.js
Version:
A small JavaScript library for common tasks such as Carousel, Exception, Animation handler and more...
5 lines (4 loc) • 1.37 kB
JavaScript
const DEFAULT_INTERSECTION_OPTION$$module$lib$Utils={root:null,ratio:.2,rootMargin:"0px",threshold:.7,timeout:200},DATA_INTERSECTION_VISIBLE$$module$lib$Utils="data-fv-visible";
class Utils$$module$lib$Utils{IntersectionHandler(a={elt:"",visible:null,invisible:null,options:{}}){const c=a.options??DEFAULT_INTERSECTION_OPTION$$module$lib$Utils;if(IntersectionObserver){const e=new IntersectionObserver(function(b,g){b.forEach(function(f){let d=f.target;f.intersectionRatio>c.ratio?d.hasAttribute(DATA_INTERSECTION_VISIBLE$$module$lib$Utils)||(a.visible?a.visible(d):!1,d.setAttribute(DATA_INTERSECTION_VISIBLE$$module$lib$Utils,!0)):a.invisible?a.invisible(d):!1})},c);a.elt.forEach(function(b,
g){e.observe(b)})}}}var module$lib$Utils={};module$lib$Utils.default=Utils$$module$lib$Utils;let _u$$module$lib$core$Intersection=new Utils$$module$lib$Utils;class Intersection$$module$lib$core$Intersection{constructor(a={elt:"",class:""}){a.___=document.querySelectorAll(a.elt);a.class=a.class.trim();this._=a;this.run()}run(){let a=this._,c=a.class.split(" ");_u$$module$lib$core$Intersection.IntersectionHandler({elt:this._.___,options:a,visible:e=>c.forEach(b=>e.classList.add(b))})}}window.fJs.Intersection=Intersection$$module$lib$core$Intersection;var module$lib$core$Intersection={};
module$lib$core$Intersection.default=Intersection$$module$lib$core$Intersection;