1+ <!DOCTYPE html>
2+ < html lang ="en ">
3+
4+ < head >
5+ < meta charset ="utf-8 ">
6+ < title > Swiper demo - Snap To Slide Edge</ title >
7+ < meta name ="viewport " content ="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1 ">
8+ </ head >
9+
10+ < body >
11+ < h2 > Default behavior (snapToSlideEdge: false)</ h2 >
12+ < p > Notice how at the end, the last slide aligns to the right edge</ p >
13+ <!-- Swiper without snapToSlideEdge -->
14+ < div class ="swiper swiper-default ">
15+ < div class ="swiper-wrapper ">
16+ < div class ="swiper-slide "> Slide 1</ div >
17+ < div class ="swiper-slide "> Slide 2</ div >
18+ < div class ="swiper-slide "> Slide 3</ div >
19+ < div class ="swiper-slide "> Slide 4</ div >
20+ < div class ="swiper-slide "> Slide 5</ div >
21+ < div class ="swiper-slide "> Slide 6</ div >
22+ < div class ="swiper-slide "> Slide 7</ div >
23+ < div class ="swiper-slide "> Slide 8</ div >
24+ </ div >
25+ < div class ="swiper-pagination "> </ div >
26+ </ div >
27+
28+ < h2 > With snapToSlideEdge: true</ h2 >
29+ < p > Slides always stay aligned to their original position</ p >
30+ <!-- Swiper with snapToSlideEdge -->
31+ < div class ="swiper swiper-snap-edge ">
32+ < div class ="swiper-wrapper ">
33+ < div class ="swiper-slide "> Slide 1</ div >
34+ < div class ="swiper-slide "> Slide 2</ div >
35+ < div class ="swiper-slide "> Slide 3</ div >
36+ < div class ="swiper-slide "> Slide 4</ div >
37+ < div class ="swiper-slide "> Slide 5</ div >
38+ < div class ="swiper-slide "> Slide 6</ div >
39+ < div class ="swiper-slide "> Slide 7</ div >
40+ < div class ="swiper-slide "> Slide 8</ div >
41+ </ div >
42+ < div class ="swiper-pagination "> </ div >
43+ </ div >
44+
45+ <!-- Initialize Swiper -->
46+ < script type ="module ">
47+ import Swiper from 'swiper/swiper-bundle.mjs' ;
48+ import 'swiper/swiper-bundle.css' ;
49+
50+ // Default behavior - last slide aligns to edge
51+ var swiperDefault = new Swiper ( '.swiper-default' , {
52+ slidesPerView : 'auto' ,
53+ spaceBetween : 20 ,
54+ pagination : {
55+ el : '.swiper-default .swiper-pagination' ,
56+ clickable : true ,
57+ } ,
58+ } ) ;
59+
60+ // With snapToSlideEdge - slides stay aligned
61+ var swiperSnapEdge = new Swiper ( '.swiper-snap-edge' , {
62+ slidesPerView : 'auto' ,
63+ spaceBetween : 20 ,
64+ snapToSlideEdge : true ,
65+ pagination : {
66+ el : '.swiper-snap-edge .swiper-pagination' ,
67+ clickable : true ,
68+ } ,
69+ } ) ;
70+ </ script >
71+
72+ <!-- Demo styles -->
73+ < style >
74+ html ,
75+ body {
76+ position : relative;
77+ height : 100% ;
78+ }
79+
80+ body {
81+ background : # eee ;
82+ font-family : Helvetica Neue, Helvetica, Arial, sans-serif;
83+ font-size : 14px ;
84+ color : # 000 ;
85+ margin : 0 ;
86+ padding : 20px ;
87+ }
88+
89+ h2 {
90+ margin : 20px 0 10px ;
91+ }
92+
93+ p {
94+ margin : 0 0 10px ;
95+ color : # 666 ;
96+ }
97+
98+ .swiper {
99+ width : 100% ;
100+ height : 200px ;
101+ margin-bottom : 30px ;
102+ }
103+
104+ .swiper-slide {
105+ text-align : center;
106+ font-size : 18px ;
107+ background : # fff ;
108+ border-radius : 8px ;
109+ width : 100px ;
110+
111+ /* Center slide text vertically */
112+ display : flex;
113+ justify-content : center;
114+ align-items : center;
115+ }
116+
117+ .swiper-default .swiper-slide {
118+ background : # 4a90d9 ;
119+ color : # fff ;
120+ }
121+
122+ .swiper-snap-edge .swiper-slide {
123+ background : # 5cb85c ;
124+ color : # fff ;
125+ }
126+ </ style >
127+ </ body >
128+
129+ </ html >
0 commit comments