|
1 | 1 | import effectInit from '../../shared/effect-init.mjs';
|
2 |
| -import { createElement } from '../../shared/utils.mjs'; |
| 2 | +import { createElement, getRotateFix } from '../../shared/utils.mjs'; |
3 | 3 |
|
4 | 4 | export default function EffectCube({ swiper, extendParams, on }) {
|
5 | 5 | extendParams({
|
@@ -58,6 +58,7 @@ export default function EffectCube({ swiper, extendParams, on }) {
|
58 | 58 | size: swiperSize,
|
59 | 59 | browser,
|
60 | 60 | } = swiper;
|
| 61 | + const r = getRotateFix(swiper); |
61 | 62 | const params = swiper.params.cubeEffect;
|
62 | 63 | const isHorizontal = swiper.isHorizontal();
|
63 | 64 | const isVirtual = swiper.virtual && swiper.params.virtual.enabled;
|
@@ -118,19 +119,12 @@ export default function EffectCube({ swiper, extendParams, on }) {
|
118 | 119 | tx = 0;
|
119 | 120 | }
|
120 | 121 |
|
121 |
| - const transform = `rotateX(${isHorizontal ? 0 : -slideAngle}deg) rotateY(${ |
122 |
| - isHorizontal ? slideAngle : 0 |
123 |
| - }deg) translate3d(${tx}px, ${ty}px, ${tz}px)`; |
| 122 | + const transform = `rotateX(${r(isHorizontal ? 0 : -slideAngle)}deg) rotateY(${r( |
| 123 | + isHorizontal ? slideAngle : 0, |
| 124 | + )}deg) translate3d(${tx}px, ${ty}px, ${tz}px)`; |
124 | 125 | if (progress <= 1 && progress > -1) {
|
125 | 126 | wrapperRotate = slideIndex * 90 + progress * 90;
|
126 | 127 | if (rtl) wrapperRotate = -slideIndex * 90 - progress * 90;
|
127 |
| - if ( |
128 |
| - swiper.browser && |
129 |
| - swiper.browser.need3dFix && |
130 |
| - (Math.abs(wrapperRotate) / 90) % 2 === 1 |
131 |
| - ) { |
132 |
| - wrapperRotate += 0.001; |
133 |
| - } |
134 | 128 | }
|
135 | 129 | slideEl.style.transform = transform;
|
136 | 130 | if (params.slideShadows) {
|
@@ -161,9 +155,9 @@ export default function EffectCube({ swiper, extendParams, on }) {
|
161 | 155 | }
|
162 | 156 | const zFactor =
|
163 | 157 | (browser.isSafari || browser.isWebView) && browser.needPerspectiveFix ? -swiperSize / 2 : 0;
|
164 |
| - wrapperEl.style.transform = `translate3d(0px,0,${zFactor}px) rotateX(${ |
165 |
| - swiper.isHorizontal() ? 0 : wrapperRotate |
166 |
| - }deg) rotateY(${swiper.isHorizontal() ? -wrapperRotate : 0}deg)`; |
| 158 | + wrapperEl.style.transform = `translate3d(0px,0,${zFactor}px) rotateX(${r( |
| 159 | + swiper.isHorizontal() ? 0 : wrapperRotate, |
| 160 | + )}deg) rotateY(${r(swiper.isHorizontal() ? -wrapperRotate : 0)}deg)`; |
167 | 161 |
|
168 | 162 | wrapperEl.style.setProperty('--swiper-cube-translate-z', `${zFactor}px`);
|
169 | 163 | };
|
|
0 commit comments