UNPKG

@frsource/tiny-carousel-plugin-scroll-snap-fallback

Version:

Add CSS Scroll Snap fallback polyfill to your @frsource/tiny-carousel 🧩

3 lines (2 loc) • 1.19 kB
!function(e,o){"object"==typeof exports&&"undefined"!=typeof module?o(exports,require("@frsource/tiny-carousel-utils")):"function"==typeof define&&define.amd?define(["exports","@frsource/tiny-carousel-utils"],o):o((e||self).tinyCarouselPluginScrollSnapFallback={},e.tinyCarouselUtils)}(this,function(e,o){var l={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 t=function(e,l){void 0===l.scrollTimeout&&(l.scrollTimeout=45);var t=void 0,i=void 0,n=2,r=function(o){--n||(i=i||o.target.scrollLeft,clearTimeout(t),t=setTimeout(s.bind(e,i),l.scrollTimeout,o))};function s(o,l){i=void 0;var t,r=e.carouselElement.scrollLeft,s=[].concat(e.config.items),c=o>r?-1:0,u=0;do{u+=t=s.shift().offsetWidth}while(s.length&&u+t<r);n=2,l.target.scrollLeft=u+c*t}return o.on(e.carouselElement,"scroll",r,{passive:!0}),{onScroll:s,timeoutedOnScroll:r}}(e,l),i=t.timeoutedOnScroll,n=e.destroy;e.destroy=function(){return o.off(e.carouselElement,"scroll",i),n.apply(this,[].slice.call(arguments))}}}};e.pluginScrollSnapFallback=l}); //# sourceMappingURL=index.umd.js.map