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