Muszę zbudować karuzelę z 12 przedmiotami, które symulują nieskończenie obracające się koło 3d. Żeby było jasne, muszę stworzyć właśnie ten efekt:
https://codepen.io/SitePoint/pen/yXWXaw (znaleziono tutaj )
ale dzięki tym dodatkowym funkcjom (szczególnie na komputerach i urządzeniach mobilnych):
- slajdy muszą podążać krok po kroku za machnięciem, to znaczy slajdy powinny się przesuwać podczas przeciągania (podobnie jak Swiper).
- Szybkim przesunięciem powinno przewijać wiele slajdów z impetem (podobnie jak Swiper
freeScroll
). - Następnie, gdy koło przestanie się obracać, zatrzaskuje się na przednim wózku (tak jak robi to Swiper
freeModeSticky
icenteredSlides
), że jest to wybrany przez użytkownika. - Potrzebuję oddzwonienia za każdym razem, gdy zmiana slajdu (jak zdarzenie
slideChanged
) (podobnie jak Swiper).
Z tych wszystkich powodów pomyślałem, że Swiper 5.3.0 będzie dobrym punktem wyjścia.
Próbowałem różnych obejść, tym lepszym jest ta konfiguracja, ale loop: true
jest to okropne obejście i powoduje problemy (sprawdź komentarze):
var swiper = new Swiper(el_class, {
slidesPerView: 1.5,
spaceBetween: 25,
centeredSlides: true,
grabCursor: true,
speed: 550,
loop: true, // <== repeat infinitely the 12 items. with fast scroll at the end of a cycle it waits a while before render the next cycle. Awful
loopAdditionalSlides: 10,
// Free mode
freeMode: true, // <== free scrolling. Good
freeModeMomentumRatio: 1,
freeModeMomentumVelocityRatio: 1.5,
freeModeMomentumBounceRatio: 1,
freeModeMinimumVelocity: 0.02,
freeModeSticky: true, // <== snap to the slides. Good
// Touch Resistance
resistanceRatio: 0.85,
// Prevent blurry texts
roundLengths: true,
});
Zdecydowanie niewłaściwa droga.
Myślę, że właściwą drogą jest opracowanie zwyczaj Swiper effect
(jak wbudowany cubeEffect
, coverflowEffect
...), który symuluje koło bez użycia loop:true
że kwestie przyczyn. Na przykład tutaj facet tworzy swój własny efekt, który następnie ustawia w effect
atrybucie Swiper:
https://codepen.io/paralleluniv3rse/pen/yGQjMv
...
effect: "myCustomTransition",
...
Jak stworzyć niestandardowy efekt, taki jak koło 3D, którego potrzebuję?
źródło
coverflowEffect
punktem początkowym i „hackować” jego parametry, ale to tylko obejście i nie mogę uzyskać efektu pierwszego codepen. Zjeżdżalnie po prostu nie będą umieszczone na okrągłej powierzchni.Odpowiedzi:
Myślę, że tego właśnie chcesz: https://codepen.io/mukyuu/pen/GRgPYqG .
Prawie spełnił twoje warunki, z wyjątkiem tego, że nie używa Swipera 5 i przystawki.
Następnie, gdy koło przestanie się obracać, zatrzaskuje się (tak jak Swiper).ontouch
funkcji występuje wywołanie zwrotne.HTML:
S (CSS):
JS:
Testowany w przeglądarkach na Androida 9 i Windows 10.
źródło
slideChanged
( podobnie jak Swiper). Z tych wszystkich powodów myślałem, że Swiper będzie dobrym punktem wyjścia ...