swiper
Version:
Most modern mobile touch slider and framework with hardware accelerated transitions
2 lines • 2.59 kB
JavaScript
import{c as createShadow}from"../shared/create-shadow.min.mjs";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 EffectCards=({swiper:e,extendParams:t,on:a})=>{function s(){return e.params.cardsEffect}t({cardsEffect:{slideShadows:!0,rotate:!0,perSlideRotate:2,perSlideOffset:8}});effectInit({effect:"cards",swiper:e,on:a,setTranslate:()=>{const{slides:t,activeIndex:a,rtlTranslate:r}=e,i=s(),{startTranslate:n,isTouched:o}=e.touchEventsData,l=r?-e.translate:e.translate;for(let s=0;s<t.length;s+=1){const d=t[s],c=d.progress??0,f=Math.min(Math.max(c,-4),4);let m=d.swiperSlideOffset??0;e.params.centeredSlides&&!e.params.cssMode&&(e.wrapperEl.style.transform=`translateX(${e.minTranslate()}px)`),e.params.centeredSlides&&e.params.cssMode&&(m-=t[0].swiperSlideOffset??0);let p=e.params.cssMode?-m-e.translate:-m,h=0;const S=-100*Math.abs(f);let M=1,u=-i.perSlideRotate*f,w=i.perSlideOffset-.75*Math.abs(f);const $=e.virtual&&e.params.virtual?.enabled?e.virtual.from+s:s,E=($===a||$===a-1)&&f>0&&f<1&&(o||e.params.cssMode)&&(l??0)<(n??0),T=($===a||$===a+1)&&f<0&&f>-1&&(o||e.params.cssMode)&&(l??0)>(n??0);if(E||T){const t=(1-Math.abs((Math.abs(f)-.5)/.5))**.5;u+=-28*f*t,M+=-.5*t,w+=96*t,h=(i.rotate||e.isHorizontal()?-25:0)*t*Math.abs(f)+"%"}if(p=f<0?`calc(${p}px ${r?"-":"+"} (${w*Math.abs(f)}%))`:f>0?`calc(${p}px ${r?"-":"+"} (-${w*Math.abs(f)}%))`:`${p}px`,!e.isHorizontal()){const e=h;h=p,p=e}const g=f<0?""+(1+(1-M)*f):""+(1-(1-M)*f),x=`\n translate3d(${p}, ${h}, ${S}px)\n rotateZ(${i.rotate?r?-u:u:0}deg)\n scale(${g})\n `;if(i.slideShadows){let e=d.querySelector(".swiper-slide-shadow");e||(e=createShadow("cards",d)),e&&(e.style.opacity=String(Math.min(Math.max((Math.abs(f)-.5)/.5,0),1)))}d.style.zIndex=String(-Math.abs(Math.round(c))+t.length);effectTarget(i,d).style.transform=x}},setTransition:t=>{const a=e.slides.map(e=>getSlideTransformEl(e));a.forEach(e=>{e.style.transitionDuration=`${t}ms`,e.querySelectorAll(".swiper-slide-shadow").forEach(e=>{e.style.transitionDuration=`${t}ms`})}),effectVirtualTransitionEnd({swiper:e,duration:t,transformElements:a})},perspective:()=>!0,overwriteParams:()=>({_loopSwapReset:!1,watchSlidesProgress:!0,loopAdditionalSlides:s().rotate?3:2,centeredSlides:!0,virtualTranslate:!e.params.cssMode})})};export{EffectCards as default};
//# sourceMappingURL=effect-cards.min.mjs.map