UNPKG

futura.js

Version:

A small JavaScript library for common tasks such as Carousel, Exception, Animation handler and more...

6 lines (5 loc) 1.93 kB
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 b=a.options??DEFAULT_INTERSECTION_OPTION$$module$lib$Utils;if(IntersectionObserver){const e=new IntersectionObserver(function(c,f){c.forEach(function(g){let d=g.target;g.intersectionRatio>b.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})},b);a.elt.forEach(function(c, f){e.observe(c)})}}}var module$lib$Utils={};module$lib$Utils.default=Utils$$module$lib$Utils;const DATA_VALUE$$module$lib$core$AutoWriteText="data-fv-data",AUTOWRITE_SELECTOR$$module$lib$core$AutoWriteText="[data-fv-anim='autowrite']";let _u$$module$lib$core$AutoWriteText=new Utils$$module$lib$Utils; class AutoWriteText$$module$lib$core$AutoWriteText{constructor(a={timeout:300,separator:"|"}){this.timeout=a.timeout??300;this.separator=a.separator??"|";this.___=document.querySelectorAll(AUTOWRITE_SELECTOR$$module$lib$core$AutoWriteText);this.begin()}begin(){_u$$module$lib$core$AutoWriteText.IntersectionHandler({elt:this.___,visible:a=>this.write(a)})}write(a){let b=0,e=a.getAttribute(DATA_VALUE$$module$lib$core$AutoWriteText),c=setInterval(()=>{let f=a.innerHTML.split(` ${this.separator}`);b<e.length? a.innerHTML=`${f[0]}${e[b]} ${this.separator}`:this.stopWrite(a,c);b++},this.timeout)}stopWrite(a,b){clearInterval(b);a.innerHTML=a.innerHTML.split(` ${this.separator}`)[0]}}window.fJs.AutoWriteText=AutoWriteText$$module$lib$core$AutoWriteText;new AutoWriteText$$module$lib$core$AutoWriteText;var module$lib$core$AutoWriteText={};module$lib$core$AutoWriteText.default=AutoWriteText$$module$lib$core$AutoWriteText;