UNPKG

swiper-mouseover

Version:
7 lines (6 loc) 1.15 kB
/** * Swiper-Mouseover v2.1.0 for Swiper (https://github.com/fibit/swiper-mouseover) * Author Pavel Romanov * Released under the MIT License */ function MouseoverPlugin({swiper:e,extendParams:r,on:t}){let o="swiper-mouseover-layer";r({mouseover:{el:null,reset:!0}});let s=e=>"string"==typeof e?document.querySelector(e):e,n=()=>"ontouchstart"in window,l=r=>function(t){return function(){e.slideTo(r??t,e.params.speed)}},u=e=>{let r=e.querySelectorAll(`.${o}`);r.forEach(e=>{let r=e._mouseOverHandler,t=e._mouseOutHandler;r&&e.removeEventListener("mouseover",r),t&&e.removeEventListener("mouseout",t),delete e._mouseOverHandler,delete e._mouseOutHandler}),e.innerHTML=""},a=r=>{e.snapGrid.forEach((t,s)=>{let n=document.createElement("div");n.className=o,r.appendChild(n);let u=l()(s);if(n._mouseOverHandler=u,n.addEventListener("mouseover",u),e.params.mouseover.reset){let a=l(0)(s);n._mouseOutHandler=a,n.addEventListener("mouseout",a)}})},m=()=>{let{el:r}=e.params.mouseover;if(!r)return;let t=s(r);if(t){if(n()){t.remove();return}u(t),a(t)}},i=()=>{let{el:r}=e.params.mouseover;if(r){let t=s(r);t&&t.remove()}};t("afterInit",m),t("destroy",i)}