UNPKG

swiper

Version:

Most modern mobile touch slider and framework with hardware accelerated transitions

2 lines 1.85 kB
import{e as effectInit}from"../shared/effect-init.min.mjs";import{e as effectTarget}from"../shared/effect-target.min.mjs";import{e as effectVirtualTransitionEnd}from"../shared/effect-virtual-transition-end.min.mjs";import{p as getSlideTransformEl}from"../shared/utils.min.mjs";const EffectFade=({swiper:t,extendParams:e,on:s})=>{e({fadeEffect:{crossFade:!1,mode:"default"}});let a=0;function r(){return t.params.fadeEffect}function n(){const t=r();return"default"===t.mode&&t.crossFade?"cross-fade":t.mode}effectInit({effect:"fade",swiper:t,on:s,setTranslate:()=>{const{slides:e}=t,s=r(),i=n(),o="out-in"===i&&a>0,f=a;a=0;const l=[],m=[];let c=!1;for(let a=0;a<e.length;a+=1){const r=e[a];let n=-(r.swiperSlideOffset??0);t.params.virtualTranslate||(n-=t.translate);let f=0;t.isHorizontal()||(f=n,n=0);const d=r.progress??0;let p;p="cross-fade"===i?Math.max(1-Math.abs(d),0):"out-in"===i?Math.max(1-2*Math.abs(d),0):1+Math.min(Math.max(d,-1),0);const u=effectTarget(s,r);if(o){const t=parseFloat(u.style.opacity);0===p&&t>0&&(c=!0),p>0&&m.push(u),l.push(u)}u.style.opacity=String(p),u.style.transform=`translate3d(${n}px, ${f}px, 0px)`}o&&(l.forEach(t=>{const e=c&&m.includes(t);t.style.transitionDuration=f/2+"ms",t.style.transitionDelay=e?f/2+"ms":"0ms"}),effectVirtualTransitionEnd({swiper:t,duration:f,transformElements:m,allSlides:!0}))},setTransition:e=>{const s=n(),r=t.slides.map(t=>getSlideTransformEl(t));r.forEach(t=>{t.style.transitionDuration=`${e}ms`,"out-in"===s&&0===e&&(t.style.transitionDelay="")}),"out-in"===s&&e>0&&!t.params.cssMode?a=e:effectVirtualTransitionEnd({swiper:t,duration:e,transformElements:r,allSlides:!0})},overwriteParams:()=>({slidesPerView:1,slidesPerGroup:1,watchSlidesProgress:!0,spaceBetween:0,virtualTranslate:!t.params.cssMode})})};export{EffectFade as default}; //# sourceMappingURL=effect-fade.min.mjs.map