j1-template 2024.3.16 → 2024.3.17

Sign up to get free protection for your applications and to get access to all the features.
Files changed (108) hide show
  1. checksums.yaml +4 -4
  2. data/assets/data/amplitude.html +132 -61
  3. data/assets/data/banner.html +1 -1
  4. data/assets/data/cookieconsent.html +1 -1
  5. data/assets/data/docsearch.html +1 -1
  6. data/assets/data/fab.html +1 -1
  7. data/assets/data/footer.html +1 -1
  8. data/assets/data/galeries.html +1 -1
  9. data/assets/data/gallery_customizer.html +1 -1
  10. data/assets/data/gemini-ui.html +1 -1
  11. data/assets/data/iframes.html +1 -1
  12. data/assets/data/masonry.html +1 -1
  13. data/assets/data/masterslider.html +1 -1
  14. data/assets/data/menu.html +1 -1
  15. data/assets/data/mmenu.html +1 -1
  16. data/assets/data/mmenu_sidebar.html +1 -1
  17. data/assets/data/mmenu_toc.html +1 -1
  18. data/assets/data/panel.html +1 -1
  19. data/assets/data/quicklinks.html +1 -1
  20. data/assets/data/rtext_resizer.html +1 -1
  21. data/assets/data/slick.html +1 -1
  22. data/assets/data/speak2me.html +1 -1
  23. data/assets/data/swiper.html +313 -0
  24. data/assets/theme/j1/adapter/js/amplitude.30.js +1177 -0
  25. data/assets/theme/j1/adapter/js/amplitude.js +152 -121
  26. data/assets/theme/j1/adapter/js/j1.js +3 -3
  27. data/assets/theme/j1/adapter/js/masterslider.js +2 -1
  28. data/assets/theme/j1/adapter/js/swiper.js +231 -0
  29. data/assets/theme/j1/modules/amplitudejs/css/theme/uno/dark/amplitude.css +13 -3
  30. data/assets/theme/j1/modules/amplitudejs/css/theme/uno/dark/amplitude.min.css +1 -1
  31. data/assets/theme/j1/modules/amplitudejs/css/theme/uno/dark/player/large.css +53 -6
  32. data/assets/theme/j1/modules/amplitudejs/css/theme/uno/dark/player/large.min.css +2 -1
  33. data/assets/theme/j1/modules/amplitudejs/js/tech/ytp.15.js +1594 -0
  34. data/assets/theme/j1/modules/amplitudejs/js/tech/ytp.js +1617 -89
  35. data/assets/theme/j1/modules/amplitudejs/js/visualizations/bar.js +1 -1
  36. data/assets/theme/j1/modules/amplitudejs/js/visualizations/circular-equalizer.js +31 -1
  37. data/assets/theme/j1/modules/amplitudejs/js/visualizations/frequency-analyzer.js +1 -1
  38. data/assets/theme/j1/modules/amplitudejs/js/visualizations/michael-bromley.js +1 -1
  39. data/assets/theme/j1/modules/amplitudejs/js/visualizations/template.js +1 -1
  40. data/assets/theme/j1/modules/photoswipe/.version_5.4.4 +6 -0
  41. data/assets/theme/j1/modules/photoswipe/LICENSE +21 -0
  42. data/assets/theme/j1/modules/photoswipe/README.md +32 -0
  43. data/assets/theme/j1/modules/photoswipe/css/org/photoswipe-dynamic-caption-plugin.umd.min.js +5 -0
  44. data/assets/theme/j1/modules/photoswipe/css/org/photoswipe.css +420 -0
  45. data/assets/theme/j1/modules/photoswipe/css/photoswipe-caption-plugin.css +67 -0
  46. data/assets/theme/j1/modules/photoswipe/css/photoswipe-caption-plugin.min.css +16 -0
  47. data/assets/theme/j1/modules/photoswipe/css/photoswipe.css +376 -0
  48. data/assets/theme/j1/modules/photoswipe/css/photoswipe.min.css +17 -0
  49. data/assets/theme/j1/modules/photoswipe/css/scss/photoswipe.scss +427 -0
  50. data/assets/theme/j1/modules/photoswipe/example/photoswipe-caption-plugin.html +237 -0
  51. data/assets/theme/j1/modules/photoswipe/example/test-gallery.html +36 -0
  52. data/assets/theme/j1/modules/photoswipe/js/README.md +43 -0
  53. data/assets/theme/j1/modules/photoswipe/js/photoswipe-caption-plugin.min.js +5 -0
  54. data/assets/theme/j1/modules/photoswipe/js/photoswipe-core.min.js +18 -0
  55. data/assets/theme/j1/modules/photoswipe/js/photoswipe-lightbox.min.js +18 -0
  56. data/assets/theme/j1/modules/swiper/.version_1.2.0 +15 -0
  57. data/assets/theme/j1/modules/swiper/LICENSE +20 -0
  58. data/assets/theme/j1/modules/swiper/README.md +95 -0
  59. data/assets/theme/j1/modules/swiper/css/swiper-bundle.css +740 -0
  60. data/assets/theme/j1/modules/swiper/css/swiper-bundle.min..css +17 -0
  61. data/assets/theme/j1/modules/swiper/css/theme/uno.css +249 -0
  62. data/assets/theme/j1/modules/swiper/css/theme/uno.min.css +154 -0
  63. data/assets/theme/j1/modules/swiper/js/swiper-bundle.js +9785 -0
  64. data/assets/theme/j1/modules/swiper/js/swiper-bundle.min.js +17 -0
  65. data/assets/theme/j1/modules/swiper/swiperjs.com-demos.url +2 -0
  66. data/lib/j1/version.rb +1 -1
  67. data/lib/starter_web/README.md +5 -5
  68. data/lib/starter_web/_config.yml +1 -1
  69. data/lib/starter_web/_data/modules/amplitude.yml +374 -39
  70. data/lib/starter_web/_data/modules/defaults/amplitude.yml +60 -35
  71. data/lib/starter_web/_data/modules/defaults/slick.yml +1 -1
  72. data/lib/starter_web/_data/modules/defaults/swiper.yml +515 -0
  73. data/lib/starter_web/_data/modules/swiper.yml +227 -0
  74. data/lib/starter_web/_data/resources.yml +53 -1
  75. data/lib/starter_web/_data/templates/feed.xml +1 -1
  76. data/lib/starter_web/_plugins/asciidoctor/amplitude-block.rb +1 -0
  77. data/lib/starter_web/_plugins/asciidoctor/videojs-block.rb +0 -4
  78. data/lib/starter_web/_plugins/index/lunr.rb +1 -1
  79. data/lib/starter_web/assets/video/poster/youtube/faelle_des_bnd/der_unverzichtbare_feind.jpg +0 -0
  80. data/lib/starter_web/assets/video/poster/youtube/faelle_des_bnd/ein_diener_vieler_herren.jpg +0 -0
  81. data/lib/starter_web/assets/video/poster/youtube/the_piano/the-piano.jpg +0 -0
  82. data/lib/starter_web/package.json +1 -1
  83. data/lib/starter_web/pages/public/_includes/attributes.asciidoc +45 -0
  84. data/lib/starter_web/pages/public/_includes/documents/photoswipe/200_photoswipe_parameters.asciidoc +510 -0
  85. data/lib/starter_web/pages/public/_includes/documents/photoswipe/210_photoswipe_lightbox_parameters.asciidoc +98 -0
  86. data/lib/starter_web/pages/public/_includes/documents/photoswipe/300_caption_plugin_for_photoSwipe.asciidoc +327 -0
  87. data/lib/starter_web/pages/public/_includes/documents/swiper/100_swiper_features.asciidoc +50 -0
  88. data/lib/starter_web/pages/public/_includes/documents/swiper/100_swiper_html_layout.asciidoc +122 -0
  89. data/lib/starter_web/pages/public/_includes/documents/swiper/100_swiper_initialization.asciidoc +53 -0
  90. data/lib/starter_web/pages/public/_includes/documents/swiper/110_swiper_common_options.asciidoc +43 -0
  91. data/lib/starter_web/pages/public/_includes/documents/swiper/200_swiper_parameters_a_k.asciidoc +994 -0
  92. data/lib/starter_web/pages/public/_includes/documents/swiper/200_swiper_parameters_l_o.asciidoc +473 -0
  93. data/lib/starter_web/pages/public/_includes/documents/swiper/200_swiper_parameters_p_s.asciidoc +700 -0
  94. data/lib/starter_web/pages/public/_includes/documents/swiper/200_swiper_parameters_t_z.asciidoc +413 -0
  95. data/lib/starter_web/pages/public/_includes/documents/swiper/300_swiper_instance_properties.asciidoc +873 -0
  96. data/lib/starter_web/pages/public/_includes/documents/swiper/400_swiper_modules.asciidoc +2514 -0
  97. data/lib/starter_web/pages/public/_includes/documents/swiper/500_swiper_methods.asciidoc +989 -0
  98. data/lib/starter_web/pages/public/_includes/documents/swiper/600_swiper_events.asciidoc +1534 -0
  99. data/lib/starter_web/pages/public/amplitude_yt_tester.adoc +77 -63
  100. data/lib/starter_web/pages/public/photoswipe_api.adoc +150 -0
  101. data/lib/starter_web/pages/public/swiper_api.adoc +128 -0
  102. data/lib/starter_web/pages/public/swiper_tester.adoc +973 -0
  103. data/lib/starter_web/pages/public/tour/modal_extentions.adoc +12 -5
  104. data/lib/starter_web/pages/public/tour/play_audio.adoc +60 -5
  105. data/lib/starter_web/pages/public/tour/play_video.adoc +30 -0
  106. data/lib/starter_web/pages/public/tour/present_images.adoc +5 -5
  107. metadata +56 -3
  108. data/assets/theme/j1/modules/amplitudejs/js/tech/youtube_example.js +0 -211
@@ -0,0 +1,1534 @@
1
+ [role="mt-5"]
2
+ == Events A - R
3
+
4
+ The Swiper API comes with a large number of *predefined* event listeners you
5
+ can assign to an (swiper) instance. Find available event listeners also with the
6
+ https://swiperjs.com/swiper-api#events[Swiper Documentation, {browser-window--new}].
7
+
8
+
9
+ [role="mt-4"]
10
+ === Assignment
11
+
12
+ Events can be assigned in *two* ways.
13
+
14
+ ==== On swiper initialization
15
+
16
+ Fire event *on* swiper initialization.
17
+
18
+ [source, js]
19
+ ----
20
+ const swiper = new Swiper('.swiper', {
21
+ // ...
22
+ on: {
23
+ init: function () {
24
+ console.log('swiper initialized');
25
+ }
26
+ }
27
+ });
28
+ ----
29
+
30
+ [role="mt-4"]
31
+ ==== After swiper initialization
32
+
33
+ Fire event *after* swiper initialization.
34
+
35
+ [source, js]
36
+ ----
37
+ const swiper = new Swiper('.swiper', {
38
+ // ...
39
+ });
40
+
41
+ swiper.on('slideChange', function () {
42
+ console.log('slide changed');
43
+ });
44
+ ----
45
+
46
+ [NOTE]
47
+ ====
48
+ The *this* keyword within a *event handler* points always to the swiper
49
+ instance.
50
+ ====
51
+
52
+
53
+ [role="mt-5"]
54
+ === Listeners
55
+
56
+ Available *predefined* event listeners.
57
+
58
+ [role="mt-4"]
59
+ [[event-activeIndexChange]]
60
+ === activeIndexChange
61
+
62
+ Event fired on *active* index change.
63
+
64
+ [cols="12a", subs=+macros, options="header", width="100%", role="rtable mt-4"]
65
+ |===
66
+ |Usage
67
+
68
+ |
69
+ [source, js]
70
+ ----
71
+ const swiper = new Swiper('.swiper', {
72
+ // option settings ...
73
+ on: {
74
+ activeIndexChange: (swiper) => {
75
+ // do something
76
+ }
77
+ }
78
+ });
79
+ ----
80
+
81
+ |===
82
+
83
+
84
+ [role="mt-4"]
85
+ [[event-afterInit]]
86
+ === afterInit
87
+
88
+ Event fired right *after* swipers *initialization*.
89
+
90
+ [cols="12a", subs=+macros, options="header", width="100%", role="rtable mt-4"]
91
+ |===
92
+ |Usage
93
+
94
+ |
95
+ [source, js]
96
+ ----
97
+ const swiper = new Swiper('.swiper', {
98
+ // option settings ...
99
+ on: {
100
+ afterInit: (swiper) => {
101
+ // do something
102
+ }
103
+ }
104
+ });
105
+ ----
106
+
107
+ |===
108
+
109
+ [role="mt-4"]
110
+ [[event-beforeDestroy]]
111
+ === beforeDestroy
112
+
113
+ Event fired right *before* swiper instance is destroyed.
114
+
115
+ [cols="12a", subs=+macros, options="header", width="100%", role="rtable mt-4"]
116
+ |===
117
+ |Usage
118
+
119
+ |
120
+ [source, js]
121
+ ----
122
+ const swiper = new Swiper('.swiper', {
123
+ // option settings ...
124
+ on: {
125
+ beforeDestroy: (swiper) => {
126
+ // do something
127
+ }
128
+ }
129
+ });
130
+ ----
131
+
132
+ |===
133
+
134
+ [role="mt-4"]
135
+ [[event-beforeInit]]
136
+ === beforeInit
137
+
138
+ Event fired right *before* swiper initialization.
139
+
140
+ [cols="12a", subs=+macros, options="header", width="100%", role="rtable mt-4"]
141
+ |===
142
+ |Usage
143
+
144
+ |
145
+ [source, js]
146
+ ----
147
+ const swiper = new Swiper('.swiper', {
148
+ // option settings ...
149
+ on: {
150
+ beforeInit: (swiper) => {
151
+ // do something
152
+ }
153
+ }
154
+ });
155
+ ----
156
+
157
+ |===
158
+
159
+ [role="mt-4"]
160
+ [[event-afterDestroy]]
161
+ === afterDestroy
162
+
163
+ Event fired right *after* swiper instance is destroyed.
164
+
165
+ [cols="12a", subs=+macros, options="header", width="100%", role="rtable mt-4"]
166
+ |===
167
+ |Usage
168
+
169
+ |
170
+ [source, js]
171
+ ----
172
+ const swiper = new Swiper('.swiper', {
173
+ // option settings ...
174
+ on: {
175
+ afterDestroy: (swiper) => {
176
+ // do something
177
+ }
178
+ }
179
+ });
180
+ ----
181
+
182
+ |===
183
+
184
+ [role="mt-4"]
185
+ [[event-beforeLoopFix]]
186
+ === beforeLoopFix
187
+
188
+ Event fired right *before* loop fix.
189
+
190
+ [cols="12a", subs=+macros, options="header", width="100%", role="rtable mt-4"]
191
+ |===
192
+ |Usage
193
+
194
+ |
195
+ [source, js]
196
+ ----
197
+ const swiper = new Swiper('.swiper', {
198
+ // option settings ...
199
+ on: {
200
+ beforeLoopFix: (swiper) => {
201
+ // do something
202
+ }
203
+ }
204
+ });
205
+ ----
206
+
207
+ |===
208
+
209
+ [role="mt-4"]
210
+ [[event-beforeResize]]
211
+ === beforeResize
212
+
213
+ Event fired *before* resize handler.
214
+
215
+ [cols="12a", subs=+macros, options="header", width="100%", role="rtable mt-4"]
216
+ |===
217
+ |Usage
218
+
219
+ |
220
+ [source, js]
221
+ ----
222
+ const swiper = new Swiper('.swiper', {
223
+ // option settings ...
224
+ on: {
225
+ beforeResize: (swiper) => {
226
+ // do something
227
+ }
228
+ }
229
+ });
230
+ ----
231
+
232
+ |===
233
+
234
+ [role="mt-4"]
235
+ [[event-beforeSlideChangeStart]]
236
+ === beforeSlideChangeStart
237
+
238
+ Event fired *before* slide *change transition* start.
239
+
240
+ [cols="12a", subs=+macros, options="header", width="100%", role="rtable mt-4"]
241
+ |===
242
+ |Usage
243
+
244
+ |
245
+ [source, js]
246
+ ----
247
+ const swiper = new Swiper('.swiper', {
248
+ // option settings ...
249
+ on: {
250
+ beforeSlideChangeStart: (swiper) => {
251
+ // do something
252
+ }
253
+ }
254
+ });
255
+ ----
256
+
257
+ |===
258
+
259
+ [role="mt-4"]
260
+ [[event-beforeTransitionStart]]
261
+ === beforeTransitionStart
262
+
263
+ Event fired *before* transition starts.
264
+
265
+ [cols="12a", subs=+macros, options="header", width="100%", role="rtable mt-4"]
266
+ |===
267
+ |Usage
268
+
269
+ |
270
+ [source, js]
271
+ ----
272
+ const swiper = new Swiper('.swiper', {
273
+ // option settings ...
274
+ on: {
275
+ beforeTransitionStart: (swiper, speed, internal) => {
276
+ // do something
277
+ }
278
+ }
279
+ });
280
+ ----
281
+
282
+ |===
283
+
284
+ [role="mt-4"]
285
+ [[event-breakpoint]]
286
+ === breakpoint
287
+
288
+ Event fired on *breakpoint change*
289
+
290
+ [cols="12a", subs=+macros, options="header", width="100%", role="rtable mt-4"]
291
+ |===
292
+ |Usage
293
+
294
+ |
295
+ [source, js]
296
+ ----
297
+ const swiper = new Swiper('.swiper', {
298
+ // option settings ...
299
+ on: {
300
+ breakpoint: (swiper, breakpointParams) => {
301
+ // do something
302
+ }
303
+ }
304
+ });
305
+ ----
306
+
307
+ |===
308
+
309
+ [role="mt-4"]
310
+ [[event-changeDirection]]
311
+ === changeDirection
312
+
313
+ Event fired on *direction* change.
314
+
315
+ [cols="12a", subs=+macros, options="header", width="100%", role="rtable mt-4"]
316
+ |===
317
+ |Usage
318
+
319
+ |
320
+ [source, js]
321
+ ----
322
+ const swiper = new Swiper('.swiper', {
323
+ // option settings ...
324
+ on: {
325
+ changeDirection: (swiper) => {
326
+ // do something
327
+ }
328
+ }
329
+ });
330
+ ----
331
+
332
+ |===
333
+
334
+ [role="mt-4"]
335
+ [[event-click]]
336
+ === click
337
+
338
+ Event fired when user *click/tap* on Swiper.
339
+
340
+ [NOTE]
341
+ ====
342
+ Receives *pointerup* event as an *argument*.
343
+ ====
344
+
345
+
346
+ [cols="12a", subs=+macros, options="header", width="100%", role="rtable mt-4"]
347
+ |===
348
+ |Usage
349
+
350
+ |
351
+ [source, js]
352
+ ----
353
+ const swiper = new Swiper('.swiper', {
354
+ // option settings ...
355
+ on: {
356
+ click: (swiper, event) => {
357
+ // do something
358
+ }
359
+ }
360
+ });
361
+ ----
362
+
363
+ |===
364
+
365
+ [role="mt-4"]
366
+ [[event-destroy]]
367
+ === destroy
368
+
369
+ Event fired *after* swiper is destroyed.
370
+
371
+ [cols="12a", subs=+macros, options="header", width="100%", role="rtable mt-4"]
372
+ |===
373
+ |Usage
374
+
375
+ |
376
+ [source, js]
377
+ ----
378
+ const swiper = new Swiper('.swiper', {
379
+ // option settings ...
380
+ on: {
381
+ destroy: (swiper) => {
382
+ // do something
383
+ }
384
+ }
385
+ });
386
+ ----
387
+
388
+ |===
389
+
390
+ [role="mt-4"]
391
+ [[event-doubleClick]]
392
+ === doubleClick
393
+
394
+ Event fired when user *double click/tap* on Swiper.
395
+
396
+ [cols="12a", subs=+macros, options="header", width="100%", role="rtable mt-4"]
397
+ |===
398
+ |Usage
399
+
400
+ |
401
+ [source, js]
402
+ ----
403
+ const swiper = new Swiper('.swiper', {
404
+ // option settings ...
405
+ on: {
406
+ doubleClick: (swiper, event) => {
407
+ // do something
408
+ }
409
+ }
410
+ });
411
+ ----
412
+
413
+ |===
414
+
415
+ [role="mt-4"]
416
+ [[event-doubleTap]]
417
+ === doubleTap
418
+
419
+ Event fired when user *double tap* on the Swipers container.
420
+
421
+ [NOTE]
422
+ ====
423
+ Receives *pointerup* event as an *argument*.
424
+ ====
425
+
426
+ [cols="12a", subs=+macros, options="header", width="100%", role="rtable mt-4"]
427
+ |===
428
+ |Usage
429
+
430
+ |
431
+ [source, js]
432
+ ----
433
+ const swiper = new Swiper('.swiper', {
434
+ // option settings ...
435
+ on: {
436
+ doubleTap: (swiper, event) => {
437
+ // do something
438
+ }
439
+ }
440
+ });
441
+ ----
442
+
443
+ |===
444
+
445
+ [role="mt-4"]
446
+ [[event-fromEdge]]
447
+ === fromEdge
448
+
449
+ Event fired when Swiper goes from *beginning* or *end* position.
450
+
451
+ [cols="12a", subs=+macros, options="header", width="100%", role="rtable mt-4"]
452
+ |===
453
+ |Usage
454
+
455
+ |
456
+ [source, js]
457
+ ----
458
+ const swiper = new Swiper('.swiper', {
459
+ // option settings ...
460
+ on: {
461
+ fromEdge: (swiper) => {
462
+ // do something
463
+ }
464
+ }
465
+ });
466
+ ----
467
+
468
+ |===
469
+
470
+ [role="mt-4"]
471
+ [[event-init]]
472
+ === init
473
+
474
+ Fired *after* Swiper *initialization*.
475
+
476
+ [CAUTION]
477
+ ====
478
+ The `swiper.on('init')` syntax works only in case setting the parameter
479
+ `init` to `false` and run explicitely an initialization.
480
+
481
+ [source, js]
482
+ ----
483
+ const swiper = new Swiper('.swiper', {
484
+ init: false,
485
+ // other parameters
486
+ });
487
+
488
+ swiper.on('init', (swiper) => {
489
+ // do something
490
+ });
491
+
492
+ // init Swiper
493
+ swiper.init();
494
+ ----
495
+
496
+ Otherwise use the event as an *initialization parameter* on instance
497
+ setup (new) as shown below.
498
+
499
+ ====
500
+
501
+ [cols="12a", subs=+macros, options="header", width="100%", role="rtable mt-4"]
502
+ |===
503
+ |Usage
504
+
505
+ |
506
+ [source, js]
507
+ ----
508
+ const swiper = new Swiper('.swiper', {
509
+ // option settings ...
510
+ on: {
511
+ init: (swiper) => {
512
+ // do something
513
+ }
514
+ }
515
+ });
516
+ ----
517
+
518
+ |===
519
+
520
+ [role="mt-4"]
521
+ [[event-lock]]
522
+ === lock
523
+
524
+ Event fired when swiper is *locked* (if `watchOverflow` is *enabled*).
525
+
526
+ [cols="12a", subs=+macros, options="header", width="100%", role="rtable mt-4"]
527
+ |===
528
+ |Usage
529
+
530
+ |
531
+ [source, js]
532
+ ----
533
+ const swiper = new Swiper('.swiper', {
534
+ // option settings ...
535
+ on: {
536
+ lock: (swiper) => {
537
+ // do something
538
+ }
539
+ }
540
+ });
541
+ ----
542
+
543
+ |===
544
+
545
+ [role="mt-4"]
546
+ [[event-loopFix]]
547
+ === loopFix
548
+
549
+ Event fired after *loop fix*.
550
+
551
+ [cols="12a", subs=+macros, options="header", width="100%", role="rtable mt-4"]
552
+ |===
553
+ |Usage
554
+
555
+ |
556
+ [source, js]
557
+ ----
558
+ const swiper = new Swiper('.swiper', {
559
+ // option settings ...
560
+ on: {
561
+ loopFix: (swiper) => {
562
+ // do something
563
+ }
564
+ }
565
+ });
566
+ ----
567
+
568
+ |===
569
+
570
+ [role="mt-4"]
571
+ [[event-momentumBounce]]
572
+ === momentumBounce
573
+
574
+ Event fired on momentum bounce.
575
+
576
+ [cols="12a", subs=+macros, options="header", width="100%", role="rtable mt-4"]
577
+ |===
578
+ |Usage
579
+
580
+ |
581
+ [source, js]
582
+ ----
583
+ const swiper = new Swiper('.swiper', {
584
+ // option settings ...
585
+ on: {
586
+ momentumBounce: (swiper) => {
587
+ // do something
588
+ }
589
+ }
590
+ });
591
+ ----
592
+
593
+ |===
594
+
595
+ [role="mt-4"]
596
+ [[event-observerUpdate]]
597
+ === observerUpdate
598
+
599
+ Event fired if observer is *enabled* and a *DOM mutations* is detected.
600
+
601
+ [cols="12a", subs=+macros, options="header", width="100%", role="rtable mt-4"]
602
+ |===
603
+ |Usage
604
+
605
+ |
606
+ [source, js]
607
+ ----
608
+ const swiper = new Swiper('.swiper', {
609
+ // option settings ...
610
+ on: {
611
+ observerUpdate: (swiper) => {
612
+ // do something
613
+ }
614
+ }
615
+ });
616
+ ----
617
+
618
+ |===
619
+
620
+ [role="mt-4"]
621
+ [[event-orientationchange]]
622
+ === orientationchange
623
+
624
+ Event fired on *orientation change* (e.g. landscape -> portrait).
625
+
626
+ [cols="12a", subs=+macros, options="header", width="100%", role="rtable mt-4"]
627
+ |===
628
+ |Usage
629
+
630
+ |
631
+ [source, js]
632
+ ----
633
+ const swiper = new Swiper('.swiper', {
634
+ // option settings ...
635
+ on: {
636
+ orientationchange: (swiper) => {
637
+ // do something
638
+ }
639
+ }
640
+ });
641
+ ----
642
+
643
+ |===
644
+
645
+ [role="mt-4"]
646
+ [[event-progress]]
647
+ === progress
648
+
649
+ Event fired when Swiper *progress* has been *changed*.
650
+
651
+ [NOTE]
652
+ ====
653
+ Receives *progress event* as an *argument*.
654
+ ====
655
+
656
+
657
+ [cols="12a", subs=+macros, options="header", width="100%", role="rtable mt-4"]
658
+ |===
659
+ |Usage
660
+
661
+ |
662
+ [source, js]
663
+ ----
664
+ const swiper = new Swiper('.swiper', {
665
+ // option settings ...
666
+ on: {
667
+ progress: (swiper, progress) => {
668
+ // do something
669
+ }
670
+ }
671
+ });
672
+ ----
673
+
674
+ |===
675
+
676
+ [role="mt-4"]
677
+ [[event-reachBeginning]]
678
+ === reachBeginning
679
+
680
+ Event fired when Swiper reach its *beginning* (initial position).
681
+
682
+ [cols="12a", subs=+macros, options="header", width="100%", role="rtable mt-4"]
683
+ |===
684
+ |Usage
685
+
686
+ |
687
+ [source, js]
688
+ ----
689
+ const swiper = new Swiper('.swiper', {
690
+ // option settings ...
691
+ on: {
692
+ reachBeginning: (swiper) => {
693
+ // do something
694
+ }
695
+ }
696
+ });
697
+ ----
698
+
699
+ |===
700
+
701
+ [role="mt-4"]
702
+ [[event-reachEnd]]
703
+ === reachEnd
704
+
705
+ Event fired when Swiper reach *last* slide.
706
+
707
+ [cols="12a", subs=+macros, options="header", width="100%", role="rtable mt-4"]
708
+ |===
709
+ |Usage
710
+
711
+ |
712
+ [source, js]
713
+ ----
714
+ const swiper = new Swiper('.swiper', {
715
+ // option settings ...
716
+ on: {
717
+ reachEnd: (swiper) => {
718
+ // do something
719
+ }
720
+ }
721
+ });
722
+ ----
723
+
724
+ |===
725
+
726
+ [role="mt-4"]
727
+ [[event-realIndexChange]]
728
+ === realIndexChange
729
+
730
+ Event fired on real index change.
731
+
732
+ [cols="12a", subs=+macros, options="header", width="100%", role="rtable mt-4"]
733
+ |===
734
+ |Usage
735
+
736
+ |
737
+ [source, js]
738
+ ----
739
+ const swiper = new Swiper('.swiper', {
740
+ // option settings ...
741
+ on: {
742
+ realIndexChange: (swiper) => {
743
+ // do something
744
+ }
745
+ }
746
+ });
747
+ ----
748
+
749
+ |===
750
+
751
+ [role="mt-4"]
752
+ [[event-resize]]
753
+ === resize
754
+
755
+ Event fired on *window resize* and *before* on s swiper *onresize*
756
+ manipulation.
757
+
758
+ [cols="12a", subs=+macros, options="header", width="100%", role="rtable mt-4"]
759
+ |===
760
+ |Usage
761
+
762
+ |
763
+ [source, js]
764
+ ----
765
+ const swiper = new Swiper('.swiper', {
766
+ // option settings ...
767
+ on: {
768
+ resize: (swiper) => {
769
+ // do something
770
+ }
771
+ }
772
+ });
773
+ ----
774
+
775
+ |===
776
+
777
+
778
+ [role="mt-5"]
779
+ == Events S - Z
780
+
781
+ The Swiper API comes with a large number of *predefined* event listeners you
782
+ can assign to an (swiper) instance. Find available event listeners also with the
783
+ https://swiperjs.com/swiper-api#events[Swiper Documentation, {browser-window--new}].
784
+
785
+ [role="mt-4"]
786
+ [[event-setTransition]]
787
+ === setTransition
788
+
789
+ Event fired *everytime* when swiper *starts animation*.
790
+
791
+ [NOTE]
792
+ ====
793
+ Receives transition duration value (in ms) as an argument.
794
+ ====
795
+
796
+ [cols="12a", subs=+macros, options="header", width="100%", role="rtable mt-4"]
797
+ |===
798
+ |Usage
799
+
800
+ |
801
+ [source, js]
802
+ ----
803
+ const swiper = new Swiper('.swiper', {
804
+ // option settings ...
805
+ on: {
806
+ setTransition: (swiper, transition) => {
807
+ // do something
808
+ }
809
+ }
810
+ });
811
+ ----
812
+
813
+ |===
814
+
815
+ [role="mt-4"]
816
+ [[event-setTranslate]]
817
+ === setTranslate
818
+
819
+ Set *custom* CSS3 *transform translate* value for the *swiper wrapper*.
820
+
821
+ [NOTE]
822
+ ====
823
+ Receives current *translate* value as as *argument*.
824
+ ====
825
+
826
+ [cols="12a", subs=+macros, options="header", width="100%", role="rtable mt-4"]
827
+ |===
828
+ |Usage
829
+
830
+ |
831
+ [source, js]
832
+ ----
833
+ const swiper = new Swiper('.swiper', {
834
+ // option settings ...
835
+ on: {
836
+ setTranslate: (swiper, translate)) => {
837
+ // do something
838
+ }
839
+ }
840
+ });
841
+ ----
842
+
843
+ |===
844
+
845
+ [role="mt-4"]
846
+ [[event-slideChange]]
847
+ === slideChange
848
+
849
+ Event fired when *active* slide has been *changed*.
850
+
851
+ [cols="12a", subs=+macros, options="header", width="100%", role="rtable mt-4"]
852
+ |===
853
+ |Usage
854
+
855
+ |
856
+ [source, js]
857
+ ----
858
+ const swiper = new Swiper('.swiper', {
859
+ // option settings ...
860
+ on: {
861
+ slideChange: (swiper) => {
862
+ // do something
863
+ }
864
+ }
865
+ });
866
+ ----
867
+
868
+ |===
869
+
870
+ [role="mt-4"]
871
+ [[event-slideChangeTransitionEnd]]
872
+ === slideChangeTransitionEnd
873
+
874
+ Event fired *after* animation to *other slide* (next or previous).
875
+
876
+ [cols="12a", subs=+macros, options="header", width="100%", role="rtable mt-4"]
877
+ |===
878
+ |Usage
879
+
880
+ |
881
+ [source, js]
882
+ ----
883
+ const swiper = new Swiper('.swiper', {
884
+ // option settings ...
885
+ on: {
886
+ slideChangeTransitionEnd: (swiper) => {
887
+ // do something
888
+ }
889
+ }
890
+ });
891
+ ----
892
+
893
+ |===
894
+
895
+ [role="mt-4"]
896
+ [[event-slideChangeTransitionStart]]
897
+ === slideChangeTransitionStart
898
+
899
+ Event fired in the *beginning* of animation to *other slide* (next or previous).
900
+
901
+ [cols="12a", subs=+macros, options="header", width="100%", role="rtable mt-4"]
902
+ |===
903
+ |Usage
904
+
905
+ |
906
+ [source, js]
907
+ ----
908
+ const swiper = new Swiper('.swiper', {
909
+ // option settings ...
910
+ on: {
911
+ slideChangeTransitionStart: (swiper) => {
912
+ // do something
913
+ }
914
+ }
915
+ });
916
+ ----
917
+
918
+ |===
919
+
920
+ [role="mt-4"]
921
+ [[event-slideNextTransitionEnd]]
922
+ === slideNextTransitionEnd
923
+
924
+ Same as *slideChangeTransitionEnd* but only for *forward direction*.
925
+
926
+ [cols="12a", subs=+macros, options="header", width="100%", role="rtable mt-4"]
927
+ |===
928
+ |Usage
929
+
930
+ |
931
+ [source, js]
932
+ ----
933
+ const swiper = new Swiper('.swiper', {
934
+ // option settings ...
935
+ on: {
936
+ slideNextTransitionEnd: (swiper) => {
937
+ // do something
938
+ }
939
+ }
940
+ });
941
+ ----
942
+
943
+ |===
944
+
945
+ [role="mt-4"]
946
+ [[event-slideNextTransitionStart]]
947
+ === slideNextTransitionStart
948
+
949
+ Same as *slideChangeTransitionStart* but only for *forward direction*.
950
+
951
+ [cols="12a", subs=+macros, options="header", width="100%", role="rtable mt-4"]
952
+ |===
953
+ |Usage
954
+
955
+ |
956
+ [source, js]
957
+ ----
958
+ const swiper = new Swiper('.swiper', {
959
+ // option settings ...
960
+ on: {
961
+ slideNextTransitionStart: (swiper) => {
962
+ // do something
963
+ }
964
+ }
965
+ });
966
+ ----
967
+
968
+ |===
969
+
970
+ [role="mt-4"]
971
+ [[event-slidePrevTransitionEnd]]
972
+ === slidePrevTransitionEnd
973
+
974
+ Same as *slideChangeTransitionEnd* but only for *backward direction*.
975
+
976
+ [cols="12a", subs=+macros, options="header", width="100%", role="rtable mt-4"]
977
+ |===
978
+ |Usage
979
+
980
+ |
981
+ [source, js]
982
+ ----
983
+ const swiper = new Swiper('.swiper', {
984
+ // option settings ...
985
+ on: {
986
+ slidePrevTransitionEnd: (swiper) => {
987
+ // do something
988
+ }
989
+ }
990
+ });
991
+ ----
992
+
993
+ |===
994
+
995
+ [role="mt-4"]
996
+ [[event-slidePrevTransitionStart]]
997
+ === slidePrevTransitionStart
998
+
999
+ Same as *slideChangeTransitionStart* but only for *backward direction*.
1000
+
1001
+ [cols="12a", subs=+macros, options="header", width="100%", role="rtable mt-4"]
1002
+ |===
1003
+ |Usage
1004
+
1005
+ |
1006
+ [source, js]
1007
+ ----
1008
+ const swiper = new Swiper('.swiper', {
1009
+ // option settings ...
1010
+ on: {
1011
+ slidePrevTransitionStart: (swiper) => {
1012
+ // do something
1013
+ }
1014
+ }
1015
+ });
1016
+ ----
1017
+
1018
+ |===
1019
+
1020
+ [role="mt-4"]
1021
+ [[event-slideResetTransitionEnd]]
1022
+ === slideResetTransitionEnd
1023
+
1024
+ Event fired in the *end* of animation of *resetting* slide to current one.
1025
+
1026
+ [cols="12a", subs=+macros, options="header", width="100%", role="rtable mt-4"]
1027
+ |===
1028
+ |Usage
1029
+
1030
+ |
1031
+ [source, js]
1032
+ ----
1033
+ const swiper = new Swiper('.swiper', {
1034
+ // option settings ...
1035
+ on: {
1036
+ slideResetTransitionEnd: (swiper) => {
1037
+ // do something
1038
+ }
1039
+ }
1040
+ });
1041
+ ----
1042
+
1043
+ |===
1044
+
1045
+ [role="mt-4"]
1046
+ [[event-slideResetTransitionStart]]
1047
+ === slideResetTransitionStart
1048
+
1049
+ Event fired in the *beginning* of animation of *resetting* slide to
1050
+ current one.
1051
+
1052
+ [cols="12a", subs=+macros, options="header", width="100%", role="rtable mt-4"]
1053
+ |===
1054
+ |Usage
1055
+
1056
+ |
1057
+ [source, js]
1058
+ ----
1059
+ const swiper = new Swiper('.swiper', {
1060
+ // option settings ...
1061
+ on: {
1062
+ slideResetTransitionStart: (swiper) => {
1063
+ // do something
1064
+ }
1065
+ }
1066
+ });
1067
+ ----
1068
+
1069
+ |===
1070
+
1071
+ [role="mt-4"]
1072
+ [[event-sliderFirstMove]]
1073
+ === sliderFirstMove
1074
+
1075
+ Event fired when user *touch and move* finger over Swiper and move it.
1076
+
1077
+ [NOTE]
1078
+ ====
1079
+ Receives *pointermove* event as an *argument*.
1080
+ ====
1081
+
1082
+ [cols="12a", subs=+macros, options="header", width="100%", role="rtable mt-4"]
1083
+ |===
1084
+ |Usage
1085
+
1086
+ |
1087
+ [source, js]
1088
+ ----
1089
+ const swiper = new Swiper('.swiper', {
1090
+ // option settings ...
1091
+ on: {
1092
+ xxx: (swiper, event) => {
1093
+ // do something
1094
+ }
1095
+ }
1096
+ });
1097
+ ----
1098
+
1099
+ |===
1100
+
1101
+ [role="mt-4"]
1102
+ [[event-sliderMove]]
1103
+ === sliderMove
1104
+
1105
+ Event fired when user *touch and move* finger over Swiper and move it.
1106
+
1107
+ [NOTE]
1108
+ ====
1109
+ Receives *pointermove* event as an *argument*.
1110
+ ====
1111
+
1112
+ [cols="12a", subs=+macros, options="header", width="100%", role="rtable mt-4"]
1113
+ |===
1114
+ |Usage
1115
+
1116
+ |
1117
+ [source, js]
1118
+ ----
1119
+ const swiper = new Swiper('.swiper', {
1120
+ // option settings ...
1121
+ on: {
1122
+ sliderMove: (swiper, event) => {
1123
+ // do something
1124
+ }
1125
+ }
1126
+ });
1127
+ ----
1128
+
1129
+ |===
1130
+
1131
+ [role="mt-4"]
1132
+ [[event-slidesGridLengthChange]]
1133
+ === slidesGridLengthChange
1134
+
1135
+ Event fired when *slides grid* has been *changed*.
1136
+
1137
+ [cols="12a", subs=+macros, options="header", width="100%", role="rtable mt-4"]
1138
+ |===
1139
+ |Usage
1140
+
1141
+ |
1142
+ [source, js]
1143
+ ----
1144
+ const swiper = new Swiper('.swiper', {
1145
+ // option settings ...
1146
+ on: {
1147
+ slidesGridLengthChange: (swiper) => {
1148
+ // do something
1149
+ }
1150
+ }
1151
+ });
1152
+ ----
1153
+
1154
+ |===
1155
+
1156
+
1157
+ [role="mt-4"]
1158
+ [[event-slidesLengthChange]]
1159
+ === slidesLengthChange
1160
+
1161
+ Event fired when *number* of slides has been *changed*.
1162
+
1163
+ [cols="12a", subs=+macros, options="header", width="100%", role="rtable mt-4"]
1164
+ |===
1165
+ |Usage
1166
+
1167
+ |
1168
+ [source, js]
1169
+ ----
1170
+ const swiper = new Swiper('.swiper', {
1171
+ // option settings ...
1172
+ on: {
1173
+ slidesLengthChange: (swiper) => {
1174
+ // do something
1175
+ }
1176
+ }
1177
+ });
1178
+ ----
1179
+
1180
+ |===
1181
+
1182
+ [role="mt-4"]
1183
+ [[event-slidesUpdated]]
1184
+ === slidesUpdated
1185
+
1186
+ Event fired *after* slides and their sizes are *calculated and updated*.
1187
+
1188
+ [cols="12a", subs=+macros, options="header", width="100%", role="rtable mt-4"]
1189
+ |===
1190
+ |Usage
1191
+
1192
+ |
1193
+ [source, js]
1194
+ ----
1195
+ const swiper = new Swiper('.swiper', {
1196
+ // option settings ...
1197
+ on: {
1198
+ slidesUpdated: (swiper) => {
1199
+ // do something
1200
+ }
1201
+ }
1202
+ });
1203
+ ----
1204
+
1205
+ |===
1206
+
1207
+ [role="mt-4"]
1208
+ [[event-snapGridLengthChange]]
1209
+ === snapGridLengthChange
1210
+
1211
+ Event fired when *snap grid* has been *changed*.
1212
+
1213
+ [cols="12a", subs=+macros, options="header", width="100%", role="rtable mt-4"]
1214
+ |===
1215
+ |Usage
1216
+
1217
+ |
1218
+ [source, js]
1219
+ ----
1220
+ const swiper = new Swiper('.swiper', {
1221
+ // option settings ...
1222
+ on: {
1223
+ snapGridLengthChange: (swiper) => {
1224
+ // do something
1225
+ }
1226
+ }
1227
+ });
1228
+ ----
1229
+
1230
+ |===
1231
+
1232
+ [role="mt-4"]
1233
+ [[event-snapIndexChange]]
1234
+ === snapIndexChange
1235
+
1236
+ Event fired when *snap index* has been changed.
1237
+
1238
+ [cols="12a", subs=+macros, options="header", width="100%", role="rtable mt-4"]
1239
+ |===
1240
+ |Usage
1241
+
1242
+ |
1243
+ [source, js]
1244
+ ----
1245
+ const swiper = new Swiper('.swiper', {
1246
+ // option settings ...
1247
+ on: {
1248
+ xxx: (swiper) => {
1249
+ // do something
1250
+ }
1251
+ }
1252
+ });
1253
+ ----
1254
+
1255
+ |===
1256
+
1257
+ [role="mt-4"]
1258
+ [[event-tap]]
1259
+ === tap
1260
+
1261
+ Event fired when user *click/tap* on *Swiper*.
1262
+
1263
+ [NOTE]
1264
+ ====
1265
+ Receives *pointerup* event as an *argument*.
1266
+ ====
1267
+
1268
+ [cols="12a", subs=+macros, options="header", width="100%", role="rtable mt-4"]
1269
+ |===
1270
+ |Usage
1271
+
1272
+ |
1273
+ [source, js]
1274
+ ----
1275
+ const swiper = new Swiper('.swiper', {
1276
+ // option settings ...
1277
+ on: {
1278
+ tap: (swiper, event) => {
1279
+ // do something
1280
+ }
1281
+ }
1282
+ });
1283
+ ----
1284
+
1285
+ |===
1286
+
1287
+ [role="mt-4"]
1288
+ [[event-toEdge]]
1289
+ === toEdge
1290
+
1291
+ Event fired when Swiper goes to *beginning* or *end* position.
1292
+
1293
+ [cols="12a", subs=+macros, options="header", width="100%", role="rtable mt-4"]
1294
+ |===
1295
+ |Usage
1296
+
1297
+ |
1298
+ [source, js]
1299
+ ----
1300
+ const swiper = new Swiper('.swiper', {
1301
+ // option settings ...
1302
+ on: {
1303
+ toEdge: (swiper) => {
1304
+ // do something
1305
+ }
1306
+ }
1307
+ });
1308
+ ----
1309
+
1310
+ |===
1311
+
1312
+ [role="mt-4"]
1313
+ [[event-touchEnd]]
1314
+ === touchEnd
1315
+
1316
+ Event fired *after* user *releases* the swiper.
1317
+
1318
+ [NOTE]
1319
+ ====
1320
+ Receives *pointerup* event as an *argument*.
1321
+ ====
1322
+
1323
+ [cols="12a", subs=+macros, options="header", width="100%", role="rtable mt-4"]
1324
+ |===
1325
+ |Usage
1326
+
1327
+ |
1328
+ [source, js]
1329
+ ----
1330
+ const swiper = new Swiper('.swiper', {
1331
+ // option settings ...
1332
+ on: {
1333
+ touchEnd: (swiper, event) => {
1334
+ // do something
1335
+ }
1336
+ }
1337
+ });
1338
+ ----
1339
+
1340
+ |===
1341
+
1342
+ [role="mt-4"]
1343
+ [[event-touchMove]]
1344
+ === touchMove
1345
+
1346
+ Event fired when user *touch and move* finger *over* the swiper.
1347
+
1348
+ [NOTE]
1349
+ ====
1350
+ Receives *pointermove* event as an *argument*.
1351
+ ====
1352
+
1353
+ [cols="12a", subs=+macros, options="header", width="100%", role="rtable mt-4"]
1354
+ |===
1355
+ |Usage
1356
+
1357
+ |
1358
+ [source, js]
1359
+ ----
1360
+ const swiper = new Swiper('.swiper', {
1361
+ // option settings ...
1362
+ on: {
1363
+ touchMove: (swiper, event) => {
1364
+ // do something
1365
+ }
1366
+ }
1367
+ });
1368
+ ----
1369
+
1370
+ |===
1371
+
1372
+ [role="mt-4"]
1373
+ [[event-touchMoveOpposite]]
1374
+ === touchMoveOpposite
1375
+
1376
+ Event fired when *user touch and move finger* over Swiper in *opposite*
1377
+ to the *direction parameter*.
1378
+
1379
+ [NOTE]
1380
+ ====
1381
+ Receives *pointermove* event as an *argument*.
1382
+ ====
1383
+
1384
+ [cols="12a", subs=+macros, options="header", width="100%", role="rtable mt-4"]
1385
+ |===
1386
+ |Usage
1387
+
1388
+ |
1389
+ [source, js]
1390
+ ----
1391
+ const swiper = new Swiper('.swiper', {
1392
+ // option settings ...
1393
+ on: {
1394
+ touchMoveOpposite: (swiper, event) => {
1395
+ // do something
1396
+ }
1397
+ }
1398
+ });
1399
+ ----
1400
+
1401
+ |===
1402
+
1403
+ [role="mt-4"]
1404
+ [[event-touchStart]]
1405
+ === touchStart
1406
+
1407
+ Event fired when user *touches* the swiper.
1408
+
1409
+ [NOTE]
1410
+ ====
1411
+ Receives *pointerdown* event as an *argument*.
1412
+ ====
1413
+
1414
+ [cols="12a", subs=+macros, options="header", width="100%", role="rtable mt-4"]
1415
+ |===
1416
+ |Usage
1417
+
1418
+ |
1419
+ [source, js]
1420
+ ----
1421
+ const swiper = new Swiper('.swiper', {
1422
+ // option settings ...
1423
+ on: {
1424
+ touchStart: (swiper, event) => {
1425
+ // do something
1426
+ }
1427
+ }
1428
+ });
1429
+ ----
1430
+
1431
+ |===
1432
+
1433
+ [role="mt-4"]
1434
+ [[event-transitionEnd]]
1435
+ === transitionEnd
1436
+
1437
+ Event fired *after* a transition.
1438
+
1439
+ [cols="12a", subs=+macros, options="header", width="100%", role="rtable mt-4"]
1440
+ |===
1441
+ |Usage
1442
+
1443
+ |
1444
+ [source, js]
1445
+ ----
1446
+ const swiper = new Swiper('.swiper', {
1447
+ // option settings ...
1448
+ on: {
1449
+ xxx: (swiper) => {
1450
+ // do something
1451
+ }
1452
+ }
1453
+ });
1454
+ ----
1455
+
1456
+ |===
1457
+
1458
+ [role="mt-4"]
1459
+ [[event-transitionStart]]
1460
+ === transitionStart
1461
+
1462
+ Event fired in the *beginning* of a transition.
1463
+
1464
+ [cols="12a", subs=+macros, options="header", width="100%", role="rtable mt-4"]
1465
+ |===
1466
+ |Usage
1467
+
1468
+ |
1469
+ [source, js]
1470
+ ----
1471
+ const swiper = new Swiper('.swiper', {
1472
+ // option settings ...
1473
+ on: {
1474
+ transitionStart: (swiper) => {
1475
+ // do something
1476
+ }
1477
+ }
1478
+ });
1479
+ ----
1480
+
1481
+ |===
1482
+
1483
+ [role="mt-4"]
1484
+ [[event-unlock]]
1485
+ === unlock
1486
+
1487
+ Event fired when swiper is *unlocked* (if parameter `watchOverflow` is *enabled*).
1488
+
1489
+ [cols="12a", subs=+macros, options="header", width="100%", role="rtable mt-4"]
1490
+ |===
1491
+ |Usage
1492
+
1493
+ |
1494
+ [source, js]
1495
+ ----
1496
+ const swiper = new Swiper('.swiper', {
1497
+ // option settings ...
1498
+ on: {
1499
+ unlock: (swiper) => {
1500
+ // do something
1501
+ }
1502
+ }
1503
+ });
1504
+ ----
1505
+
1506
+ |===
1507
+
1508
+ [role="mt-4"]
1509
+ [[event-update]]
1510
+ === update
1511
+
1512
+ Event fired *after* update() call is *finished*.
1513
+
1514
+ [cols="12a", subs=+macros, options="header", width="100%", role="rtable mt-4"]
1515
+ |===
1516
+ |Usage
1517
+
1518
+ |
1519
+ [source, js]
1520
+ ----
1521
+ const swiper = new Swiper('.swiper', {
1522
+ // option settings ...
1523
+ on: {
1524
+ update: (swiper) => {
1525
+ // do something
1526
+ }
1527
+ }
1528
+ });
1529
+ ----
1530
+
1531
+ |===
1532
+
1533
+
1534
+