UNPKG

enami

Version:

Animation on scroll package

8 lines 4.74 kB
"use strict";function ownKeys(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);e&&(a=a.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,a)}return n}function _objectSpread(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?ownKeys(Object(n),!0).forEach((function(e){_defineProperty(t,e,n[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):ownKeys(Object(n)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}))}return t}function _defineProperty(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function _typeof(t){return(_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)} /*! * enami * Animation on scroll * 2020 Enzo Vergara * MIT License * https://github.com/enzoemb/enami */!function(t,e){"function"==typeof define&&define.amd?define([],(function(){return e(t)})):"object"===("undefined"==typeof exports?"undefined":_typeof(exports))?module.exports=e(t):t.enami=e(t)}("undefined"!=typeof global?global:"undefined"!=typeof window?window:void 0,(function(t){t=t.root;var e={offset:"0px 0px 0px 0px",delay:null,duration:null,once:!0,disableOnMobile:!1,threshold:0,selector:null,root:null,reset:!1},n=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},a=new CustomEvent(t,n);e?e.dispatchEvent(a):document.dispatchEvent(a)},a=function(t){var e=(t=t.trim()).replace(/[^0-9.]/g,"");return t.endsWith("ms")?parseInt(e):1e3*e},r=function(t,e){n("enami:animate-in",t);var a=t.getAttribute("data-enami-delay");a&&""==t.style.transitionDelay?t.style.animationDelay=a:null!=e.delay&&""==t.style.transitionDelay&&(t.style.animationDelay=e.delay);var r=t.getAttribute("data-enami-duration");r?t.style.animationDuration=r:null!=e.duration&&(t.style.animationDuration=e.duration),t.removeAttribute("data-enami-out"),t.setAttribute("data-enami-in","")},i=function(t){n("enami:animate-out",t),t.removeAttribute("data-enami-in"),t.setAttribute("data-enami-out","")},o=function(t){t.style.animation="false",t.removeAttribute("data-enami-in"),setTimeout((function(){t.style.animation=""}),1)};return function(t){var u,l,c,d,s,f={},m=_objectSpread(_objectSpread({},e),t);return c=null!=m.selector?document.querySelector(m.selector):document,d=c.querySelectorAll("[data-enami]"),l=c.querySelectorAll("[data-enami-children]"),f.destroy=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;null!=u?(n("enami:destroy",null,{detail:{target:m.selector}}),u.disconnect(),u=null,"initial"==t?d.forEach((function(t){t.removeAttribute("data-enami-out"),t.removeAttribute("data-enami-in")})):"final"==t&&d.forEach((function(t){t.removeAttribute("data-enami-out"),t.setAttribute("data-enami-in","")}))):console.error("enami.js: You can destroy a not initialized enami")},n("enami:init",null,{detail:{target:null==m.selector?document:m.selector}}),(s=document.createElement("style")).innerHTML="\n [data-enami] {\n opacity: 0.001;\n }\n ",document.head.appendChild(s),1==m.disableOnMobile&&/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)||(u=new IntersectionObserver((function(t,e){t.forEach((function(t){if(t.target.hasAttribute("data-enami-children")){var n=t.target.getAttribute("data-enami-stagger"),u=t.target.getAttribute("data-enami-reset"),l=t.target.getAttribute("data-enami-children"),c=t.target.querySelectorAll(l),d=t.target.getAttribute("data-enami-delay"),s=t.target.getAttribute("data-enami-animation");if(null!=n){var f=a(n),y=1;null!=d?d=a(d):null!=m.delay&&(d=a(m.delay)),c.forEach((function(t){var e=f*y;t.style.animationDelay=e+d+"ms",y++,t.setAttribute("data-enami",s)}))}t.isIntersecting?(c.forEach((function(t,e){r(t,m)})),(t.target.hasAttribute("data-enami-once")||m.once)&&e.unobserve(t.target)):c.forEach((function(t){t.hasAttribute("data-enami-in")&&(null!=u||m.reset?o(t):i(t))}))}else t.isIntersecting?(r(t.target,m),(t.target.hasAttribute("data-enami-once")||m.once)&&e.unobserve(t.target)):t.target.hasAttribute("data-enami-in")&&0==t.target.hasAttribute("data-enami-reset")?i(t.target):t.target.hasAttribute("data-enami-reset")&&o(t.target)}))}),{rootMargin:m.offset,threshold:m.threshold,root:m.root}),d.forEach((function(t){u.observe(t)})),l.forEach((function(t){u.observe(t);var e=t.getAttribute("data-enami-children");t.querySelectorAll(e).forEach((function(t){u.unobserve(t)}))}))),f}}));