@frsource/tiny-carousel-plugin-scroll-snap-fallback
Version:
Add CSS Scroll Snap fallback polyfill to your @frsource/tiny-carousel 🧩
3 lines (2 loc) • 943 B
JavaScript
import{on as o,off as t}from"@frsource/tiny-carousel-utils";var e={install:function(e,l){if(void 0===l&&(l={}),l.force||!("undefined"!=typeof CSS&&null!=CSS.supports&&CSS.supports("scroll-snap-align","start")||"undefined"!=typeof InstallTrigger)){var r=function(t,e){void 0===e.scrollTimeout&&(e.scrollTimeout=45);var l=void 0,r=void 0,i=2,s=function(o){--i||(r=r||o.target.scrollLeft,clearTimeout(l),l=setTimeout(n.bind(t,r),e.scrollTimeout,o))};function n(o,e){r=void 0;var l,s=t.carouselElement.scrollLeft,n=[].concat(t.config.items),c=o>s?-1:0,u=0;do{u+=l=n.shift().offsetWidth}while(n.length&&u+l<s);i=2,e.target.scrollLeft=u+c*l}return o(t.carouselElement,"scroll",s,{passive:!0}),{onScroll:n,timeoutedOnScroll:s}}(e,l),i=r.timeoutedOnScroll,s=e.destroy;e.destroy=function(){return t(e.carouselElement,"scroll",i),s.apply(this,[].slice.call(arguments))}}}};export{e as pluginScrollSnapFallback};
//# sourceMappingURL=index.module.js.map