j1-template 2024.3.16 → 2024.3.18
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/_includes/themes/j1/layouts/content_generator_collection.html +1 -1
- data/_includes/themes/j1/layouts/content_generator_news_panel_posts.html +1 -1
- data/_includes/themes/j1/layouts/content_generator_page.html +1 -1
- data/_includes/themes/j1/layouts/content_generator_post.html +1 -1
- data/_includes/themes/j1/layouts/content_generator_raw.html +1 -1
- data/_includes/themes/j1/layouts/layout_metadata_generator.html +1 -1
- data/_includes/themes/j1/layouts/layout_module_generator.html +1 -1
- data/_includes/themes/j1/layouts/layout_resource_generator.html +1 -1
- data/_includes/themes/j1/modules/attics/generator.html +1 -1
- data/_includes/themes/j1/modules/navigator/generator.html +1 -1
- data/_includes/themes/j1/modules/searcher/generator.html +1 -1
- data/_includes/themes/j1/modules/searcher/procedures/topsearch.proc +1 -1
- data/_includes/themes/j1/procedures/blocks/footer/boxes/about_box.proc +1 -1
- data/_includes/themes/j1/procedures/blocks/footer/boxes/contacts_box.proc +1 -1
- data/_includes/themes/j1/procedures/blocks/footer/boxes/issue.proc +1 -1
- data/_includes/themes/j1/procedures/blocks/footer/boxes/legal_statements.proc +1 -1
- data/_includes/themes/j1/procedures/blocks/footer/boxes/links_box.proc +1 -1
- data/_includes/themes/j1/procedures/blocks/footer/boxes/news_box.proc +1 -1
- data/_includes/themes/j1/procedures/blocks/footer/boxes/social_media_icons.proc +1 -1
- data/_includes/themes/j1/procedures/blocks/get_wave.proc +1 -1
- data/_includes/themes/j1/procedures/collections/create_collection_article_preview.proc +1 -1
- data/_includes/themes/j1/procedures/collections/pager.proc +1 -1
- data/_includes/themes/j1/procedures/global/attributes_loader.proc +1 -1
- data/_includes/themes/j1/procedures/global/collect_frontmatter_options.proc +1 -1
- data/_includes/themes/j1/procedures/global/collect_page_options.proc +1 -1
- data/_includes/themes/j1/procedures/global/create_bs_button.proc +1 -1
- data/_includes/themes/j1/procedures/global/create_word_cloud.proc +1 -1
- data/_includes/themes/j1/procedures/global/date-german.proc +1 -1
- data/_includes/themes/j1/procedures/global/get_category.proc +1 -1
- data/_includes/themes/j1/procedures/global/get_category_item.proc +1 -1
- data/_includes/themes/j1/procedures/global/get_documents_dir.proc +1 -1
- data/_includes/themes/j1/procedures/global/get_page_path.proc +1 -1
- data/_includes/themes/j1/procedures/global/get_page_url.proc +1 -1
- data/_includes/themes/j1/procedures/global/select_color.proc +1 -1
- data/_includes/themes/j1/procedures/global/select_font_size.proc +1 -1
- data/_includes/themes/j1/procedures/global/select_icon_size.proc +1 -1
- data/_includes/themes/j1/procedures/global/select_location.proc +1 -1
- data/_includes/themes/j1/procedures/global/set_base_vars_folders.proc +1 -1
- data/_includes/themes/j1/procedures/global/set_env_entry_document.proc +1 -1
- data/_includes/themes/j1/procedures/global/set_image_block.proc +1 -1
- data/_includes/themes/j1/procedures/global/setup.proc +1 -1
- data/_includes/themes/j1/procedures/layouts/content_writer.proc +1 -1
- data/_includes/themes/j1/procedures/layouts/default_writer.proc +1 -1
- data/_includes/themes/j1/procedures/layouts/module_writer.proc +1 -1
- data/_includes/themes/j1/procedures/layouts/resource_writer.proc +1 -1
- data/_includes/themes/j1/procedures/posts/collate_calendar.proc +1 -1
- data/_includes/themes/j1/procedures/posts/collate_list.proc +1 -1
- data/_includes/themes/j1/procedures/posts/collate_timeline.proc +1 -1
- data/_includes/themes/j1/procedures/posts/create_ad_block.proc +1 -1
- data/_includes/themes/j1/procedures/posts/create_series_header.proc +1 -1
- data/_includes/themes/j1/procedures/posts/pager.proc +1 -1
- data/_layouts/autopage_category.html +1 -1
- data/_layouts/autopage_collection.html +1 -1
- data/_layouts/autopage_collections_tags.html +1 -1
- data/_layouts/autopage_tags.html +1 -1
- data/_layouts/collection.html +1 -1
- data/_layouts/compress.html +1 -1
- data/_layouts/default.html +1 -1
- data/_layouts/home.html +1 -1
- data/_layouts/news_panel_posts.html +1 -1
- data/_layouts/page.html +1 -1
- data/_layouts/post.html +1 -1
- data/_layouts/raw.html +1 -1
- data/apps/public/cc/cc.yml +1 -1
- data/assets/data/amplitude.html +137 -66
- data/assets/data/authclient.html +1 -1
- data/assets/data/banner.html +2 -2
- data/assets/data/carousel.json +1 -1
- data/assets/data/cookieconsent.html +2 -2
- data/assets/data/docsearch.html +2 -2
- data/assets/data/fab.html +2 -2
- data/assets/data/footer.html +2 -2
- data/assets/data/galeries.html +2 -2
- data/assets/data/gallery_customizer.html +2 -2
- data/assets/data/gemini-ui.html +2 -2
- data/assets/data/iframes.html +2 -2
- data/assets/data/iso-3166-country-codes.json +1 -1
- data/assets/data/iso-639-language-codes.json +1 -1
- data/assets/data/j1_config.json +1 -1
- data/assets/data/masonry.html +2 -2
- data/assets/data/masterslider.html +2 -2
- data/assets/data/mdi_icons.json +1 -1
- data/assets/data/mdil_icons.json +1 -1
- data/assets/data/menu.html +2 -2
- data/assets/data/mmenu.html +2 -2
- data/assets/data/mmenu_sidebar.html +2 -2
- data/assets/data/mmenu_toc.html +2 -2
- data/assets/data/panel.html +2 -2
- data/assets/data/particles.yml +1 -1
- data/assets/data/private.json +1 -1
- data/assets/data/quicklinks.html +2 -2
- data/assets/data/rtext_resizer.html +2 -2
- data/assets/data/slick.html +2 -2
- data/assets/data/speak2me.html +2 -2
- data/assets/data/swiper.html +244 -0
- data/assets/data/swiper.json +84 -0
- data/assets/data/themes.bootswatch.json +1 -1
- data/assets/data/themes.json +1 -1
- data/assets/data/translator.html +1 -1
- data/assets/error_pages/HTTP204.html +1 -1
- data/assets/error_pages/HTTP400.html +1 -1
- data/assets/error_pages/HTTP401.html +1 -1
- data/assets/error_pages/HTTP403.html +1 -1
- data/assets/error_pages/HTTP404.html +1 -1
- data/assets/error_pages/HTTP444.html +1 -1
- data/assets/error_pages/HTTP445.html +1 -1
- data/assets/error_pages/HTTP446.html +1 -1
- data/assets/error_pages/HTTP447.html +1 -1
- data/assets/error_pages/HTTP448.html +1 -1
- data/assets/error_pages/HTTP500.html +1 -1
- data/assets/error_pages/HTTP501.html +1 -1
- data/assets/error_pages/HTTP502.html +1 -1
- data/assets/error_pages/HTTP503.html +1 -1
- data/assets/theme/j1/adapter/js/advertising.js +2 -2
- data/assets/theme/j1/adapter/js/algolia.js +2 -2
- data/assets/theme/j1/adapter/js/amplitude.30.js +1177 -0
- data/assets/theme/j1/adapter/js/amplitude.js +165 -132
- data/assets/theme/j1/adapter/js/analytics.js +2 -2
- data/assets/theme/j1/adapter/js/asciidoctor.js +2 -2
- data/assets/theme/j1/adapter/js/attic.js +2 -2
- data/assets/theme/j1/adapter/js/bmd.js +2 -2
- data/assets/theme/j1/adapter/js/carousel.js +2 -2
- data/assets/theme/j1/adapter/js/chatbot.js +2 -2
- data/assets/theme/j1/adapter/js/clipboard.js +2 -2
- data/assets/theme/j1/adapter/js/comments.js +2 -2
- data/assets/theme/j1/adapter/js/cookieConsent.js +2 -2
- data/assets/theme/j1/adapter/js/customFunctions.js +2 -2
- data/assets/theme/j1/adapter/js/customModule.js +2 -2
- data/assets/theme/j1/adapter/js/docsearch.js +2 -2
- data/assets/theme/j1/adapter/js/dropdowns.js +2 -2
- data/assets/theme/j1/adapter/js/fab.js +2 -2
- data/assets/theme/j1/adapter/js/gallery.js +2 -2
- data/assets/theme/j1/adapter/js/gemini.js +2 -2
- data/assets/theme/j1/adapter/js/iconPicker.js +2 -2
- data/assets/theme/j1/adapter/js/iconPickerPage.js +2 -2
- data/assets/theme/j1/adapter/js/iframer.js +2 -2
- data/assets/theme/j1/adapter/js/j1.js +5 -5
- data/assets/theme/j1/adapter/js/lazyLoader.js +2 -2
- data/assets/theme/j1/adapter/js/lightbox.js +2 -2
- data/assets/theme/j1/adapter/js/logger.js +2 -2
- data/assets/theme/j1/adapter/js/lunr.js +2 -2
- data/assets/theme/j1/adapter/js/masonry.js +2 -2
- data/assets/theme/j1/adapter/js/masterslider.js +4 -3
- data/assets/theme/j1/adapter/js/mmenu.js +2 -2
- data/assets/theme/j1/adapter/js/navigator.js +2 -2
- data/assets/theme/j1/adapter/js/particles.js +2 -2
- data/assets/theme/j1/adapter/js/rangeSlider.js +2 -2
- data/assets/theme/j1/adapter/js/rouge.js +2 -2
- data/assets/theme/j1/adapter/js/rtable.js +2 -2
- data/assets/theme/j1/adapter/js/rtextResizer.js +2 -2
- data/assets/theme/j1/adapter/js/scroller.js +2 -2
- data/assets/theme/j1/adapter/js/slick.js +2 -2
- data/assets/theme/j1/adapter/js/slimSelect.js +2 -2
- data/assets/theme/j1/adapter/js/speak2me.js +2 -2
- data/assets/theme/j1/adapter/js/swiper.js +503 -0
- data/assets/theme/j1/adapter/js/themeToggler.js +2 -2
- data/assets/theme/j1/adapter/js/themes.js +2 -2
- data/assets/theme/j1/adapter/js/toccer.js +2 -2
- data/assets/theme/j1/adapter/js/translator.js +2 -2
- data/assets/theme/j1/adapter/js/videojs.js +2 -2
- data/assets/theme/j1/adapter/js/waves.js +2 -2
- data/assets/theme/j1/core/country-flags/css/theme/uno.css +1 -1
- data/assets/theme/j1/core/country-flags/css/theme/uno.min.css +1 -1
- data/assets/theme/j1/modules/amplitudejs/css/theme/uno/dark/amplitude.css +14 -4
- data/assets/theme/j1/modules/amplitudejs/css/theme/uno/dark/amplitude.min.css +2 -2
- data/assets/theme/j1/modules/amplitudejs/css/theme/uno/dark/player/compact.css +1 -1
- data/assets/theme/j1/modules/amplitudejs/css/theme/uno/dark/player/compact.min.css +1 -1
- data/assets/theme/j1/modules/amplitudejs/css/theme/uno/dark/player/large.css +54 -7
- data/assets/theme/j1/modules/amplitudejs/css/theme/uno/dark/player/large.min.css +3 -2
- data/assets/theme/j1/modules/amplitudejs/css/theme/uno/dark/player/mini.css +1 -1
- data/assets/theme/j1/modules/amplitudejs/css/theme/uno/dark/player/mini.min.css +1 -1
- data/assets/theme/j1/modules/amplitudejs/js/amplitude.js +1 -1
- data/assets/theme/j1/modules/amplitudejs/js/amplitude.map +1 -1
- data/assets/theme/j1/modules/amplitudejs/js/amplitude.min.js +1 -1
- data/assets/theme/j1/modules/amplitudejs/js/tech/ytp.js +1621 -90
- data/assets/theme/j1/modules/amplitudejs/js/tech/ytp.min.js +14 -0
- data/assets/theme/j1/modules/amplitudejs/js/visualizations/bar.js +2 -2
- data/assets/theme/j1/modules/amplitudejs/js/visualizations/bar.min.js +1 -1
- data/assets/theme/j1/modules/amplitudejs/js/visualizations/circular-equalizer.js +32 -2
- data/assets/theme/j1/modules/amplitudejs/js/visualizations/circular-equalizer.min.js +1 -1
- data/assets/theme/j1/modules/amplitudejs/js/visualizations/frequency-analyzer.js +2 -2
- data/assets/theme/j1/modules/amplitudejs/js/visualizations/frequency-analyzer.min.js +1 -1
- data/assets/theme/j1/modules/amplitudejs/js/visualizations/michael-bromley.js +2 -2
- data/assets/theme/j1/modules/amplitudejs/js/visualizations/michael-bromley.min.js +1 -1
- data/assets/theme/j1/modules/amplitudejs/js/visualizations/template.js +2 -2
- data/assets/theme/j1/modules/amplitudejs/js/visualizations/template.min.js +1 -1
- data/assets/theme/j1/modules/amplitudejs/scss/theme/uno/dark/amplitude.scss +1 -1
- data/assets/theme/j1/modules/amplitudejs/scss/theme/uno/dark/player/compact.scss +1 -1
- data/assets/theme/j1/modules/amplitudejs/scss/theme/uno/dark/player/large.scss +1 -1
- data/assets/theme/j1/modules/amplitudejs/scss/theme/uno/dark/player/mini.scss +1 -1
- data/assets/theme/j1/modules/backstretch/js/backstretch.js +1 -1
- data/assets/theme/j1/modules/backstretch/js/backstretch.min.js +1 -1
- data/assets/theme/j1/modules/bmd/js/bmd.js +1 -1
- data/assets/theme/j1/modules/bmd/js/bmd.min.js +1 -1
- data/assets/theme/j1/modules/carousel/css/carousel.css +1 -1
- data/assets/theme/j1/modules/carousel/css/carousel.min.css +1 -1
- data/assets/theme/j1/modules/carousel/css/carousel_transitions.css +1 -1
- data/assets/theme/j1/modules/carousel/css/carousel_transitions.min.css +1 -1
- data/assets/theme/j1/modules/carousel/css/theme/uno.css +1 -1
- data/assets/theme/j1/modules/carousel/css/theme/uno.min.css +1 -1
- data/assets/theme/j1/modules/chatbot/css/theme/uno.css +1 -1
- data/assets/theme/j1/modules/chatbot/css/theme/uno.min.css +1 -1
- data/assets/theme/j1/modules/clipboard/css/theme/uno.css +1 -1
- data/assets/theme/j1/modules/clipboard/css/theme/uno.min.css +1 -1
- data/assets/theme/j1/modules/cookieConsent/js/cookieConsent.js +1 -1
- data/assets/theme/j1/modules/cookieConsent/js/cookieConsent.min.js +1 -1
- data/assets/theme/j1/modules/dropdowns/css/theme/uno/dropdowns.css +1 -1
- data/assets/theme/j1/modules/dropdowns/css/theme/uno/dropdowns.min.css +1 -1
- data/assets/theme/j1/modules/dropdowns/js/cash.js +1 -1
- data/assets/theme/j1/modules/dropdowns/js/cash.min.js +1 -1
- data/assets/theme/j1/modules/dropdowns/js/dropdowns.js +1 -1
- data/assets/theme/j1/modules/dropdowns/js/dropdowns.min.js +1 -1
- data/assets/theme/j1/modules/fab/js/cash.js +1 -1
- data/assets/theme/j1/modules/fab/js/cash.min.js +1 -1
- data/assets/theme/j1/modules/fab/js/fab.js +1 -1
- data/assets/theme/j1/modules/fab/js/fab.min.js +1 -1
- data/assets/theme/j1/modules/gemini/css/theme/uno.css +1 -1
- data/assets/theme/j1/modules/gemini/css/theme/uno.min.css +1 -1
- data/assets/theme/j1/modules/gemini/js/gemini.js +1 -1
- data/assets/theme/j1/modules/gemini/js/gemini.min.js +1 -1
- data/assets/theme/j1/modules/iconPicker/css/theme/uno.css +1 -1
- data/assets/theme/j1/modules/iconPicker/css/theme/uno.min.css +1 -1
- data/assets/theme/j1/modules/iconPicker/css/universal-icon-picker.css +1 -1
- data/assets/theme/j1/modules/iconPicker/css/universal-icon-picker.min.css +1 -1
- data/assets/theme/j1/modules/iconPicker/js/universal-icon-picker.js +1 -1
- data/assets/theme/j1/modules/iconPicker/js/universal-icon-picker.min.js +1 -1
- data/assets/theme/j1/modules/j1LazyLoader/LICENSE +1 -1
- data/assets/theme/j1/modules/jquery/js/extensions/hasClass.js +1 -1
- data/assets/theme/j1/modules/jquery/js/extensions/hasClass.min.js +1 -1
- data/assets/theme/j1/modules/jquery/js/extensions/removeClass.js +1 -1
- data/assets/theme/j1/modules/jquery/js/extensions/removeClass.min.js +1 -1
- data/assets/theme/j1/modules/justifiedGallery/css/justifiedGallery.css +1 -1
- data/assets/theme/j1/modules/justifiedGallery/css/justifiedGallery.min.css +1 -1
- data/assets/theme/j1/modules/justifiedGallery/css/theme/uno.css +1 -1
- data/assets/theme/j1/modules/justifiedGallery/css/theme/uno.min.css +1 -1
- data/assets/theme/j1/modules/lazyCssLoader/js/main.0.js +1 -1
- data/assets/theme/j1/modules/lazyCssLoader/js/main.1.js +1 -1
- data/assets/theme/j1/modules/lazyCssLoader/js/main.js +1 -1
- data/assets/theme/j1/modules/lightGallery/css/lg-transitions.css +1 -1
- data/assets/theme/j1/modules/lightGallery/css/lg-transitions.min.css +1 -1
- data/assets/theme/j1/modules/lightGallery/css/lightgallery-bundle.css +1 -1
- data/assets/theme/j1/modules/lightGallery/css/lightgallery-bundle.min.css +1 -1
- data/assets/theme/j1/modules/lightGallery/css/themes/uno/uno.css +1 -1
- data/assets/theme/j1/modules/lightGallery/css/themes/uno/uno.min.css +1 -1
- data/assets/theme/j1/modules/lightGallery/js/lightgallery.js +1 -1
- data/assets/theme/j1/modules/lightGallery/js/lightgallery.min.js +1 -1
- data/assets/theme/j1/modules/lightGallery/js/plugins/j1/j1-video.js +1 -1
- data/assets/theme/j1/modules/lightGallery/js/plugins/j1/j1-video.min.js +1 -1
- data/assets/theme/j1/modules/lightGallery/js/plugins/j1/lg-video.1.js +1 -1
- data/assets/theme/j1/modules/lightGallery/js/plugins/lg-autoplay.js +1 -1
- data/assets/theme/j1/modules/lightGallery/js/plugins/lg-autoplay.min.js +1 -1
- data/assets/theme/j1/modules/lightGallery/js/plugins/lg-comment.js +1 -1
- data/assets/theme/j1/modules/lightGallery/js/plugins/lg-comment.min.js +1 -1
- data/assets/theme/j1/modules/lightGallery/js/plugins/lg-fullscreen.js +1 -1
- data/assets/theme/j1/modules/lightGallery/js/plugins/lg-fullscreen.min.js +1 -1
- data/assets/theme/j1/modules/lightGallery/js/plugins/lg-hash.js +1 -1
- data/assets/theme/j1/modules/lightGallery/js/plugins/lg-hash.min.js +1 -1
- data/assets/theme/j1/modules/lightGallery/js/plugins/lg-medium-zoom.js +1 -1
- data/assets/theme/j1/modules/lightGallery/js/plugins/lg-medium-zoom.min.js +1 -1
- data/assets/theme/j1/modules/lightGallery/js/plugins/lg-pager.js +1 -1
- data/assets/theme/j1/modules/lightGallery/js/plugins/lg-pager.min.js +1 -1
- data/assets/theme/j1/modules/lightGallery/js/plugins/lg-rotate.js +1 -1
- data/assets/theme/j1/modules/lightGallery/js/plugins/lg-rotate.min.js +1 -1
- data/assets/theme/j1/modules/lightGallery/js/plugins/lg-share.js +1 -1
- data/assets/theme/j1/modules/lightGallery/js/plugins/lg-share.min.js +1 -1
- data/assets/theme/j1/modules/lightGallery/js/plugins/lg-thumbnail.js +1 -1
- data/assets/theme/j1/modules/lightGallery/js/plugins/lg-thumbnail.min.js +1 -1
- data/assets/theme/j1/modules/lightGallery/js/plugins/lg-video.js +1 -1
- data/assets/theme/j1/modules/lightGallery/js/plugins/lg-video.min.js +1 -1
- data/assets/theme/j1/modules/lightGallery/js/plugins/lg-vimeo-thumbnail.js +1 -1
- data/assets/theme/j1/modules/lightGallery/js/plugins/lg-vimeo-thumbnail.min.js +1 -1
- data/assets/theme/j1/modules/lightGallery/js/plugins/lg-zoom.js +1 -1
- data/assets/theme/j1/modules/lightGallery/js/plugins/lg-zoom.min.js +1 -1
- data/assets/theme/j1/modules/lightbox/css/lightbox.css +1 -1
- data/assets/theme/j1/modules/lightbox/css/lightbox.min.css +1 -1
- data/assets/theme/j1/modules/lightbox/css/theme/uno.css +1 -1
- data/assets/theme/j1/modules/lightbox/css/theme/uno.min.css +1 -1
- data/assets/theme/j1/modules/lightbox/js/lightbox.js +1 -1
- data/assets/theme/j1/modules/lightbox/js/lightbox.min.js +1 -1
- data/assets/theme/j1/modules/lunr/css/theme/uno.css +1 -1
- data/assets/theme/j1/modules/lunr/css/theme/uno.min.css +1 -1
- data/assets/theme/j1/modules/lunr/js/j1.js +1 -1
- data/assets/theme/j1/modules/lunr/js/j1.min.js +1 -1
- data/assets/theme/j1/modules/masterslider/css/theme/uno.css +1 -1
- data/assets/theme/j1/modules/masterslider/css/theme/uno.min.css +1 -1
- data/assets/theme/j1/modules/mmenuLight/css/mmenu-light.css +1 -1
- data/assets/theme/j1/modules/mmenuLight/css/mmenu-light.min.css +1 -1
- data/assets/theme/j1/modules/mmenuLight/css/theme/uno/mmenu.css +1 -1
- data/assets/theme/j1/modules/mmenuLight/css/theme/uno/mmenu.min.css +1 -1
- data/assets/theme/j1/modules/mmenuLight/js/mmenu.js +1 -1
- data/assets/theme/j1/modules/mmenuLight/js/mmenu.min.js +1 -1
- data/assets/theme/j1/modules/msDropdown/css/flags.css +1 -1
- data/assets/theme/j1/modules/msDropdown/css/flags.min.css +1 -1
- data/assets/theme/j1/modules/msDropdown/css/msDropdown.css +1 -1
- data/assets/theme/j1/modules/msDropdown/css/msDropdown.min.css +1 -1
- data/assets/theme/j1/modules/msDropdown/css/themes/uno/msDropdown.css +1 -1
- data/assets/theme/j1/modules/msDropdown/css/themes/uno/msDropdown.min.css +1 -1
- data/assets/theme/j1/modules/msDropdown/js/msDropdown.js +1 -1
- data/assets/theme/j1/modules/msDropdown/js/msDropdown.min.js +1 -1
- data/assets/theme/j1/modules/photoswipe/LICENSE +21 -0
- data/assets/theme/j1/modules/photoswipe/README.md +32 -0
- data/assets/theme/j1/modules/photoswipe/_info/.version_5.4.4 +6 -0
- data/assets/theme/j1/modules/photoswipe/_info/example/photoswipe-caption-plugin.html +237 -0
- data/assets/theme/j1/modules/photoswipe/_info/example/test-gallery.html +36 -0
- data/assets/theme/j1/modules/photoswipe/css/photoswipe-caption-plugin.css +69 -0
- data/assets/theme/j1/modules/photoswipe/css/photoswipe-caption-plugin.min.css +16 -0
- data/assets/theme/j1/modules/photoswipe/css/photoswipe.css +376 -0
- data/assets/theme/j1/modules/photoswipe/css/photoswipe.min.css +17 -0
- data/assets/theme/j1/modules/photoswipe/js/_info/README.md +43 -0
- data/assets/theme/j1/modules/photoswipe/js/photoswipe-caption-plugin.js +428 -0
- data/assets/theme/j1/modules/photoswipe/js/photoswipe-caption-plugin.min.js +18 -0
- data/assets/theme/j1/modules/photoswipe/js/photoswipe-core.js +7102 -0
- data/assets/theme/j1/modules/photoswipe/js/photoswipe-core.min.js +18 -0
- data/assets/theme/j1/modules/photoswipe/js/photoswipe-lightbox.1.js +1990 -0
- data/assets/theme/j1/modules/photoswipe/js/photoswipe-lightbox.js +1981 -0
- data/assets/theme/j1/modules/photoswipe/js/photoswipe-lightbox.min.js +18 -0
- data/assets/theme/j1/modules/rangeSlider/css/theme/uno/nouislider.css +1 -1
- data/assets/theme/j1/modules/rangeSlider/css/theme/uno/nouislider.min.css +1 -1
- data/assets/theme/j1/modules/rouge/css/base16/theme.css +1 -1
- data/assets/theme/j1/modules/rouge/css/base16/theme.min.css +1 -1
- data/assets/theme/j1/modules/rouge/css/base16.dark/theme.css +1 -1
- data/assets/theme/j1/modules/rouge/css/base16.dark/theme.min.css +1 -1
- data/assets/theme/j1/modules/rouge/css/base16.light/theme.css +1 -1
- data/assets/theme/j1/modules/rouge/css/base16.light/theme.min.css +1 -1
- data/assets/theme/j1/modules/rouge/css/base16.monokai/theme.css +1 -1
- data/assets/theme/j1/modules/rouge/css/base16.monokai/theme.min.css +1 -1
- data/assets/theme/j1/modules/rouge/css/base16.monokai.dark/theme.css +1 -1
- data/assets/theme/j1/modules/rouge/css/base16.monokai.dark/theme.min.css +1 -1
- data/assets/theme/j1/modules/rouge/css/base16.monokai.light/theme.css +1 -1
- data/assets/theme/j1/modules/rouge/css/base16.monokai.light/theme.min.css +1 -1
- data/assets/theme/j1/modules/rouge/css/base16.solarized/theme.css +1 -1
- data/assets/theme/j1/modules/rouge/css/base16.solarized/theme.min.css +1 -1
- data/assets/theme/j1/modules/rouge/css/base16.solarized.dark/theme.css +1 -1
- data/assets/theme/j1/modules/rouge/css/base16.solarized.dark/theme.min.css +1 -1
- data/assets/theme/j1/modules/rouge/css/base16.solarized.light/theme.css +1 -1
- data/assets/theme/j1/modules/rouge/css/base16.solarized.light/theme.min.css +1 -1
- data/assets/theme/j1/modules/rouge/css/colorful/theme.css +1 -1
- data/assets/theme/j1/modules/rouge/css/colorful/theme.min.css +1 -1
- data/assets/theme/j1/modules/rouge/css/github/theme.css +1 -1
- data/assets/theme/j1/modules/rouge/css/github/theme.min.css +1 -1
- data/assets/theme/j1/modules/rouge/css/gruvbox/theme.css +1 -1
- data/assets/theme/j1/modules/rouge/css/gruvbox/theme.min.css +1 -1
- data/assets/theme/j1/modules/rouge/css/gruvbox.dark/theme.css +1 -1
- data/assets/theme/j1/modules/rouge/css/gruvbox.dark/theme.min.css +1 -1
- data/assets/theme/j1/modules/rouge/css/gruvbox.light/theme.css +1 -1
- data/assets/theme/j1/modules/rouge/css/gruvbox.light/theme.min.css +1 -1
- data/assets/theme/j1/modules/rouge/css/igorpro/theme.css +1 -1
- data/assets/theme/j1/modules/rouge/css/igorpro/theme.min.css +1 -1
- data/assets/theme/j1/modules/rouge/css/molokai/theme.css +1 -1
- data/assets/theme/j1/modules/rouge/css/molokai/theme.min.css +1 -1
- data/assets/theme/j1/modules/rouge/css/monokai/theme.css +1 -1
- data/assets/theme/j1/modules/rouge/css/monokai/theme.min.css +1 -1
- data/assets/theme/j1/modules/rouge/css/monokai.sublime/theme.css +1 -1
- data/assets/theme/j1/modules/rouge/css/monokai.sublime/theme.min.css +1 -1
- data/assets/theme/j1/modules/rouge/css/pastie/theme.css +1 -1
- data/assets/theme/j1/modules/rouge/css/pastie/theme.min.css +1 -1
- data/assets/theme/j1/modules/rouge/css/thankful_eyes/theme.css +1 -1
- data/assets/theme/j1/modules/rouge/css/thankful_eyes/theme.min.css +1 -1
- data/assets/theme/j1/modules/rouge/css/themes.txt +1 -1
- data/assets/theme/j1/modules/rouge/css/tulip/theme.css +1 -1
- data/assets/theme/j1/modules/rouge/css/tulip/theme.min.css +1 -1
- data/assets/theme/j1/modules/rouge/css/uno.dark/theme.css +1 -1
- data/assets/theme/j1/modules/rouge/css/uno.dark/theme.min.css +1 -1
- data/assets/theme/j1/modules/rouge/css/uno.light/theme.css +1 -1
- data/assets/theme/j1/modules/rouge/css/uno.light/theme.min.css +1 -1
- data/assets/theme/j1/modules/rouge/js/select.js +1 -1
- data/assets/theme/j1/modules/rtable/css/theme/uno/rtable.css +1 -1
- data/assets/theme/j1/modules/rtable/css/theme/uno/rtable.min.css +1 -1
- data/assets/theme/j1/modules/rtable/js/rtable.js +1 -1
- data/assets/theme/j1/modules/rtable/js/rtable.min.js +1 -1
- data/assets/theme/j1/modules/scroller/css/theme/uno.css +1 -1
- data/assets/theme/j1/modules/scroller/css/theme/uno.min.css +1 -1
- data/assets/theme/j1/modules/scroller/js/scroller.min.js +1 -1
- data/assets/theme/j1/modules/slick/lightbox/css/theme/uno.css +1 -1
- data/assets/theme/j1/modules/slick/lightbox/css/theme/uno.min.css +1 -1
- data/assets/theme/j1/modules/slick/slider/css/theme/uno.css +1 -1
- data/assets/theme/j1/modules/slick/slider/css/theme/uno.min.css +1 -1
- data/assets/theme/j1/modules/spinner/css/spin.css +1 -1
- data/assets/theme/j1/modules/spinner/css/spin.min.css +1 -1
- data/assets/theme/j1/modules/spinner/js/spin.js +1 -1
- data/assets/theme/j1/modules/spinner/js/spin.min.js +1 -1
- data/assets/theme/j1/modules/swiper/LICENSE +20 -0
- data/assets/theme/j1/modules/swiper/README.md +95 -0
- data/assets/theme/j1/modules/swiper/_info/.version_1.2.0 +15 -0
- data/assets/theme/j1/modules/swiper/_info/swiperjs.com-demos.url +2 -0
- data/assets/theme/j1/modules/swiper/css/modules/effectNeighbor.css +53 -0
- data/assets/theme/j1/modules/swiper/css/modules/effectNeighbor.min.css +17 -0
- data/assets/theme/j1/modules/swiper/css/modules/effectPanorama.css +26 -0
- data/assets/theme/j1/modules/swiper/css/modules/effectPanorama.min.css +17 -0
- data/assets/theme/j1/modules/swiper/css/modules/effectThumbs.css +44 -0
- data/assets/theme/j1/modules/swiper/css/modules/effectThumbs.min.css +44 -0
- data/assets/theme/j1/modules/swiper/css/swiper-bundle.css +746 -0
- data/assets/theme/j1/modules/swiper/css/swiper-bundle.min..css +23 -0
- data/assets/theme/j1/modules/swiper/css/theme/uno.css +229 -0
- data/assets/theme/j1/modules/swiper/css/theme/uno.min.css +144 -0
- data/assets/theme/j1/modules/swiper/js/modules/!readme +3 -0
- data/assets/theme/j1/modules/swiper/js/modules/effectNeighbor.js +33 -0
- data/assets/theme/j1/modules/swiper/js/modules/effectNeighbor.min.js +33 -0
- data/assets/theme/j1/modules/swiper/js/modules/effectPanorama.js +93 -0
- data/assets/theme/j1/modules/swiper/js/modules/effectPanorama.min.js +17 -0
- data/assets/theme/j1/modules/swiper/js/modules/effectThumbs.js +113 -0
- data/assets/theme/j1/modules/swiper/js/modules/effectThumbs.min.js +33 -0
- data/assets/theme/j1/modules/swiper/js/swiper-bundle.js +9791 -0
- data/assets/theme/j1/modules/swiper/js/swiper-bundle.min.js +23 -0
- data/assets/theme/j1/modules/themeSwitcher/js/switcher.js +1 -1
- data/assets/theme/j1/modules/themeSwitcher/js/switcher.min.js +1 -1
- data/assets/theme/j1/modules/translator/css/translator.css +1 -1
- data/assets/theme/j1/modules/translator/css/translator.min.css +1 -1
- data/assets/theme/j1/modules/translator/js/translator.js +1 -1
- data/assets/theme/j1/modules/translator/js/translator.min.js +1 -1
- data/assets/theme/j1/modules/videoPlayer/vimeo/js/player.min.js +1 -1
- data/assets/theme/j1/modules/videojs/css/plugins/controls/skipbuttons.0.css +1 -1
- data/assets/theme/j1/modules/videojs/css/plugins/controls/skipbuttons.1.css +1 -1
- data/assets/theme/j1/modules/videojs/css/plugins/controls/skipbuttons.css +1 -1
- data/assets/theme/j1/modules/videojs/css/plugins/controls/skipbuttons.min.css +1 -1
- data/assets/theme/j1/modules/videojs/css/plugins/controls/zoom.css +1 -1
- data/assets/theme/j1/modules/videojs/css/plugins/controls/zoom.min.css +1 -1
- data/assets/theme/j1/modules/videojs/css/themes/uno.css +1 -1
- data/assets/theme/j1/modules/videojs/css/themes/uno.min.css +1 -1
- data/assets/theme/j1/modules/videojs/js/plugins/controls/autocaption/autocaption.js +1 -1
- data/assets/theme/j1/modules/videojs/js/plugins/controls/autocaption/autocaption.min.js +1 -1
- data/assets/theme/j1/modules/videojs/js/plugins/controls/hotkeys/hotkeys.js +1 -1
- data/assets/theme/j1/modules/videojs/js/plugins/controls/hotkeys/hotkeys.min.js +1 -1
- data/assets/theme/j1/modules/videojs/js/plugins/controls/skipbuttons/skipbuttons.js +1 -1
- data/assets/theme/j1/modules/videojs/js/plugins/controls/skipbuttons/skipbuttons.min.js +1 -1
- data/assets/theme/j1/modules/videojs/js/plugins/controls/zoom/zoom.js +1 -1
- data/assets/theme/j1/modules/videojs/js/plugins/controls/zoom/zoom.min.js +1 -1
- data/assets/theme/j1/modules/videojs/js/plugins/players/dm/api/dailymotion.sdk.js +1 -1
- data/assets/theme/j1/modules/videojs/js/plugins/players/dm/api/dailymotion.sdk.min.js +1 -1
- data/assets/theme/j1/modules/videojs/js/plugins/players/dm/dailymotion.js +1 -1
- data/assets/theme/j1/modules/videojs/js/plugins/players/dm/dailymotion.min.js +1 -1
- data/assets/theme/j1/modules/videojs/js/plugins/players/vm/api/vimeo.js +1 -1
- data/assets/theme/j1/modules/videojs/js/plugins/players/vm/api/vimeo.min.js +1 -1
- data/assets/theme/j1/modules/videojs/js/plugins/players/vm/vimeo.js +1 -1
- data/assets/theme/j1/modules/videojs/js/plugins/players/vm/vimeo.min.js +1 -1
- data/assets/theme/j1/modules/videojs/js/plugins/players/wt/wistia.js +1 -1
- data/assets/theme/j1/modules/videojs/js/plugins/players/wt/wistia.min.js +1 -1
- data/assets/theme/j1/modules/videojs/js/plugins/players/yt/api/youtube.min.js +1 -1
- data/assets/theme/j1/modules/videojs/js/plugins/players/yt/v3.0.0/youtube.js +1 -1
- data/assets/theme/j1/modules/videojs/js/plugins/players/yt/v3.0.0/youtube.min.js +1 -1
- data/assets/theme/j1/modules/videojs/js/plugins/players/yt/youtube.js +1 -1
- data/assets/theme/j1/modules/videojs/js/plugins/players/yt/youtube.min.js +1 -1
- data/lib/j1/version.rb +1 -1
- data/lib/starter_web/Gemfile +1 -1
- data/lib/starter_web/README.md +5 -5
- data/lib/starter_web/_config.yml +2 -2
- data/lib/starter_web/_data/j1_config.yml +1 -1
- data/lib/starter_web/_data/modules/amplitude_players.yml +352 -0
- data/lib/starter_web/_data/modules/{amplitude.yml → amplitude_playlists.yml} +257 -239
- data/lib/starter_web/_data/modules/authentication.yml +1 -1
- data/lib/starter_web/_data/modules/defaults/amplitude.yml +60 -35
- data/lib/starter_web/_data/modules/defaults/slick.yml +1 -1
- data/lib/starter_web/_data/modules/defaults/swiper.yml +175 -0
- data/lib/starter_web/_data/modules/log4javascript.yml +1 -1
- data/lib/starter_web/_data/modules/navigator.yml +1 -1
- data/lib/starter_web/_data/modules/navigator_menu.yml +1 -1
- data/lib/starter_web/_data/modules/swiper.yml +655 -0
- data/lib/starter_web/_data/modules/swiper_playlists.yml +480 -0
- data/lib/starter_web/_data/private.yml +1 -1
- data/lib/starter_web/_data/resources.yml +272 -158
- data/lib/starter_web/_data/templates/feed.xml +1 -1
- data/lib/starter_web/_includes/custom/static/bs5_accordion.html +1 -1
- data/lib/starter_web/_includes/custom/templates/bs5_accordion.html +1 -1
- data/lib/starter_web/_includes/custom/templates/collection_panel.html +1 -1
- data/lib/starter_web/_includes/custom/templates/custom_header.html +1 -1
- data/lib/starter_web/_includes/custom/templates/people_panel.html +1 -1
- data/lib/starter_web/_includes/google/static/google_ad__your-slot-id.html +1 -1
- data/lib/starter_web/_includes/google/templates/google_ads.html +1 -1
- data/lib/starter_web/_plugins/asciidoctor/admonition-block-answer.rb +1 -1
- data/lib/starter_web/_plugins/asciidoctor/admonition-block-question.rb +1 -1
- data/lib/starter_web/_plugins/asciidoctor/amplitude-block.rb +2 -1
- data/lib/starter_web/_plugins/asciidoctor/banner.rb +1 -1
- data/lib/starter_web/_plugins/asciidoctor/callout.rb +1 -1
- data/lib/starter_web/_plugins/asciidoctor/carousel-block.rb +1 -1
- data/lib/starter_web/_plugins/asciidoctor/conum.rb +1 -1
- data/lib/starter_web/_plugins/asciidoctor/dailymotion-block.rb +1 -1
- data/lib/starter_web/_plugins/asciidoctor/fab-icon-inline.rb +1 -1
- data/lib/starter_web/_plugins/asciidoctor/fas-icon-inline.rb +1 -1
- data/lib/starter_web/_plugins/asciidoctor/flag-icon-inline.rb +1 -1
- data/lib/starter_web/_plugins/asciidoctor/gallery-block.rb +1 -1
- data/lib/starter_web/_plugins/asciidoctor/gemini-ui-block.rb +1 -1
- data/lib/starter_web/_plugins/asciidoctor/gist-block.rb +1 -1
- data/lib/starter_web/_plugins/asciidoctor/google-ad-block.rb +1 -1
- data/lib/starter_web/_plugins/asciidoctor/iconify-icon-inline.rb +1 -1
- data/lib/starter_web/_plugins/asciidoctor/iframe-block.rb +1 -1
- data/lib/starter_web/_plugins/asciidoctor/lightbox-block.rb +1 -1
- data/lib/starter_web/_plugins/asciidoctor/lorem_inline.rb +1 -1
- data/lib/starter_web/_plugins/asciidoctor/masonry-block.rb +1 -1
- data/lib/starter_web/_plugins/asciidoctor/masterslider-block.rb +1 -1
- data/lib/starter_web/_plugins/asciidoctor/mdi-icon-inline.rb +1 -1
- data/lib/starter_web/_plugins/asciidoctor/mdib-icon-inline.rb +1 -1
- data/lib/starter_web/_plugins/asciidoctor/mdil-icon-inline.rb +1 -1
- data/lib/starter_web/_plugins/asciidoctor/panel.rb +1 -1
- data/lib/starter_web/_plugins/asciidoctor/placeholder-inline.rb +1 -1
- data/lib/starter_web/_plugins/asciidoctor/range-slider-block.rb +1 -1
- data/lib/starter_web/_plugins/asciidoctor/shout-block.rb +1 -1
- data/lib/starter_web/_plugins/asciidoctor/slick-block.rb +1 -1
- data/lib/starter_web/_plugins/asciidoctor/slim-select-block.rb +1 -1
- data/lib/starter_web/_plugins/asciidoctor/swiper-block.rb +55 -0
- data/lib/starter_web/_plugins/asciidoctor/textbook-block.rb +1 -1
- data/lib/starter_web/_plugins/asciidoctor/twitter-emoji-inline.rb +1 -1
- data/lib/starter_web/_plugins/asciidoctor/videojs-block.rb +1 -5
- data/lib/starter_web/_plugins/asciidoctor/vimeo-block.rb +1 -1
- data/lib/starter_web/_plugins/asciidoctor/wistia-block.rb +1 -1
- data/lib/starter_web/_plugins/asciidoctor/youtube-block.rb +1 -1
- data/lib/starter_web/_plugins/filter/debug.rb +1 -1
- data/lib/starter_web/_plugins/filter/encodeBase64.rb +1 -1
- data/lib/starter_web/_plugins/filter/encryptAES.rb +1 -1
- data/lib/starter_web/_plugins/filter/filters.rb +32 -1
- data/lib/starter_web/_plugins/filter/liquify.rb +1 -1
- data/lib/starter_web/_plugins/filter/minifyJS.rb +1 -1
- data/lib/starter_web/_plugins/filter/minifyJSON.rb +1 -1
- data/lib/starter_web/_plugins/filter/prettify.rb +1 -1
- data/lib/starter_web/_plugins/filter/xml_prettify.rb +1 -1
- data/lib/starter_web/_plugins/helper/symlink_watcher.rb +1 -1
- data/lib/starter_web/_plugins/i18n/date.rb +1 -1
- data/lib/starter_web/_plugins/index/lunr.rb +2 -2
- data/lib/starter_web/_plugins/seo/j1-feed.rb +1 -1
- data/lib/starter_web/_plugins/seo/j1-seo-tags.rb +1 -1
- data/lib/starter_web/_plugins/seo/j1-sitemap.rb +1 -1
- data/lib/starter_web/assets/image/icons/tv/Index of -tv-logos-.url +2 -0
- data/lib/starter_web/assets/image/icons/tv/TV from Germany - LyngSat Logo.url +2 -0
- data/lib/starter_web/assets/image/icons/tv/Zeichnung.svg +47 -0
- data/lib/starter_web/assets/image/icons/tv/ard-icon-16x16.ico +0 -0
- data/lib/starter_web/assets/image/icons/tv/ard-icon-24x24.png +0 -0
- data/lib/starter_web/assets/image/icons/tv/ard-icon-512x512.png +0 -0
- data/lib/starter_web/assets/image/icons/tv/ard-icon.jpg +0 -0
- data/lib/starter_web/assets/image/icons/tv/ard-icon.jpg (353/303/227353).url" +2 -0
- data/lib/starter_web/assets/image/icons/tv/ard-icon.png +0 -0
- data/lib/starter_web/assets/image/icons/tv/ard-logo-png_seeklogo-428343.png +0 -0
- data/lib/starter_web/assets/image/icons/tv/cytec-tvlogos- collection of mostly german tv channel logos.url +2 -0
- data/lib/starter_web/assets/image/icons/tv/output_image.jpg +0 -0
- data/lib/starter_web/assets/image/icons/tv/pang.ping +0 -0
- data/lib/starter_web/assets/image/icons/tv/tv-logos-countries-germany-0_all_logos_mosaic.md at main /302/267 tv-logo-tv-logos.url" +2 -0
- data/lib/starter_web/assets/image/modules/attics/1920x1280/tiny_desk.jpg +0 -0
- data/lib/starter_web/assets/image/modules/attics/alice-donovan-rouse-2.jpg +0 -0
- data/lib/starter_web/assets/image/modules/gallery/free_animals/free-animals-1.jpg +0 -0
- data/lib/starter_web/assets/image/modules/gallery/free_animals/free-animals-2.jpg +0 -0
- data/lib/starter_web/assets/image/modules/gallery/free_animals/free-animals-3.jpg +0 -0
- data/lib/starter_web/assets/image/modules/gallery/free_animals/free-animals-4.jpg +0 -0
- data/lib/starter_web/assets/image/modules/gallery/free_animals/free-animals-5.jpg +0 -0
- data/lib/starter_web/assets/image/modules/gallery/free_animals/free-animals-6.jpg +0 -0
- data/lib/starter_web/assets/image/modules/gallery/mega_cities/295683517.jpg +0 -0
- data/lib/starter_web/assets/image/modules/gallery/mega_cities/chicago-us.jpg +0 -0
- data/lib/starter_web/assets/image/modules/gallery/mega_cities/denys-nevozhai-1_b.jpg +0 -0
- data/lib/starter_web/assets/image/modules/gallery/mega_cities/denys-nevozhai-1_c.jpg +0 -0
- data/lib/starter_web/assets/image/modules/gallery/mega_cities/denys-nevozhai-3_b.jpg +0 -0
- data/lib/starter_web/assets/image/modules/gallery/mega_cities/emmad-mazhari_c.jpg +0 -0
- data/lib/starter_web/assets/image/modules/gallery/mega_cities/federico-rizzarelli_b.jpg +0 -0
- data/lib/starter_web/assets/image/modules/gallery/mega_cities/federico-rizzarelli_c.jpg +0 -0
- data/lib/starter_web/assets/image/modules/gallery/mega_cities/jakarta_indonesia.jpg +0 -0
- data/lib/starter_web/assets/image/modules/gallery/mega_cities/jakarta_indonesia_2.jpg +0 -0
- data/lib/starter_web/assets/image/modules/gallery/mega_cities/melbourne_australia.jpg +0 -0
- data/lib/starter_web/assets/image/modules/gallery/mega_cities/melbourne_australia.webp +0 -0
- data/lib/starter_web/assets/image/modules/gallery/mega_cities/queen_bees_at_eureka_tower.jpg +0 -0
- data/lib/starter_web/assets/image/modules/gallery/mega_cities/shanghai_china.jpg +0 -0
- data/lib/starter_web/assets/image/modules/gallery/mega_cities/thomas-tucker_b.jpg +0 -0
- data/lib/starter_web/assets/image/modules/gallery/mega_cities/tokyo_japan.jpg +0 -0
- data/lib/starter_web/assets/image/modules/gallery/neighbor_slider/guardians-of-the-galaxy.jpg +0 -0
- data/lib/starter_web/assets/image/modules/gallery/neighbor_slider/justice-league.jpg +0 -0
- data/lib/starter_web/assets/image/modules/gallery/neighbor_slider/spider-man.jpg +0 -0
- data/lib/starter_web/assets/image/modules/gallery/neighbor_slider/suicide-squad.jpg +0 -0
- data/lib/starter_web/assets/image/modules/gallery/neighbor_slider/thor-ragnarok.jpg +0 -0
- data/lib/starter_web/assets/image/modules/gallery/panorama/1.jpg +0 -0
- data/lib/starter_web/assets/image/modules/gallery/panorama/10.jpg +0 -0
- data/lib/starter_web/assets/image/modules/gallery/panorama/11.jpg +0 -0
- data/lib/starter_web/assets/image/modules/gallery/panorama/12.jpg +0 -0
- data/lib/starter_web/assets/image/modules/gallery/panorama/2.jpg +0 -0
- data/lib/starter_web/assets/image/modules/gallery/panorama/3.jpg +0 -0
- data/lib/starter_web/assets/image/modules/gallery/panorama/4.jpg +0 -0
- data/lib/starter_web/assets/image/modules/gallery/panorama/5.jpg +0 -0
- data/lib/starter_web/assets/image/modules/gallery/panorama/6.jpg +0 -0
- data/lib/starter_web/assets/image/modules/gallery/panorama/7.jpg +0 -0
- data/lib/starter_web/assets/image/modules/gallery/panorama/8.jpg +0 -0
- data/lib/starter_web/assets/image/modules/gallery/panorama/9.jpg +0 -0
- data/lib/starter_web/assets/video/poster/youtube/faelle_des_bnd/der_unverzichtbare_feind.jpg +0 -0
- data/lib/starter_web/assets/video/poster/youtube/faelle_des_bnd/ein_diener_vieler_herren.jpg +0 -0
- data/lib/starter_web/assets/video/poster/youtube/the_piano/the-piano.jpg +0 -0
- data/lib/starter_web/config.ru +1 -1
- data/lib/starter_web/dot.gitattributes +1 -1
- data/lib/starter_web/dot.nojekyll +1 -1
- data/lib/starter_web/package.json +1 -1
- data/lib/starter_web/pages/public/{manuals/integrations/google/gemini/_includes → _includes}/attributes.asciidoc +5 -7
- data/lib/starter_web/pages/public/_includes/documents/photoswipe/200_photoswipe_parameters.asciidoc +529 -0
- data/lib/starter_web/pages/public/_includes/documents/photoswipe/210_photoswipe_lightbox_parameters.asciidoc +105 -0
- data/lib/starter_web/pages/public/_includes/documents/photoswipe/300_caption_plugin_for_photoSwipe.asciidoc +324 -0
- data/lib/starter_web/pages/public/_includes/documents/swiper/100_swiper_features.asciidoc +50 -0
- data/lib/starter_web/pages/public/_includes/documents/swiper/100_swiper_html_layout.asciidoc +122 -0
- data/lib/starter_web/pages/public/_includes/documents/swiper/100_swiper_initialization.asciidoc +53 -0
- data/lib/starter_web/pages/public/_includes/documents/swiper/110_swiper_common_options.asciidoc +118 -0
- data/lib/starter_web/pages/public/_includes/documents/swiper/200_swiper_parameters_a_k.asciidoc +1094 -0
- data/lib/starter_web/pages/public/_includes/documents/swiper/200_swiper_parameters_l_o.asciidoc +537 -0
- data/lib/starter_web/pages/public/_includes/documents/swiper/200_swiper_parameters_p_s.asciidoc +757 -0
- data/lib/starter_web/pages/public/_includes/documents/swiper/200_swiper_parameters_t_z.asciidoc +451 -0
- data/lib/starter_web/pages/public/_includes/documents/swiper/300_swiper_instance_properties.asciidoc +873 -0
- data/lib/starter_web/pages/public/_includes/documents/swiper/400_swiper_modules.asciidoc +3445 -0
- data/lib/starter_web/pages/public/_includes/documents/swiper/500_swiper_methods.asciidoc +989 -0
- data/lib/starter_web/pages/public/_includes/documents/swiper/600_swiper_events.asciidoc +1534 -0
- data/lib/starter_web/pages/public/{amplitude_yt_tester.adoc → tools/tester/amplitude_yt_tester.adoc} +81 -67
- data/lib/starter_web/pages/public/tools/tester/swiper_tester.adoc +796 -0
- data/lib/starter_web/pages/public/tour/modal_extentions.adoc +12 -5
- data/lib/starter_web/pages/public/tour/play_audio.adoc +60 -5
- data/lib/starter_web/pages/public/tour/play_video.adoc +30 -0
- data/lib/starter_web/pages/public/tour/present_images.adoc +24 -22
- metadata +128 -20
- data/assets/theme/j1/modules/amplitudejs/js/tech/youtube_example.js +0 -211
- data/lib/starter_web/assets/image/modules/gallery/mega_cities/thomas-tucker-bw.jpg +0 -0
- data/lib/starter_web/pages/public/lazy_loader_tester.adoc +0 -402
- data/lib/starter_web/pages/public/manuals/integrations/amplitudejs/_includes/attributes.asciidoc +0 -69
- data/lib/starter_web/pages/public/manuals/integrations/amplitudejs/_includes/documents/readme +0 -0
- data/lib/starter_web/pages/public/manuals/integrations/amplitudejs/amplitudejs-api.adoc +0 -2260
- data/lib/starter_web/pages/public/manuals/integrations/google/gemini/_includes/documents/preview_google_adsense.asciidoc +0 -448
- data/lib/starter_web/pages/public/manuals/integrations/google/gemini/_includes/documents/readme +0 -0
- data/lib/starter_web/pages/public/manuals/integrations/google/gemini/_includes/tables/readme +0 -0
- data/lib/starter_web/pages/public/manuals/integrations/google/gemini/gemini.adoc +0 -525
- data/lib/starter_web/pages/public/manuals/integrations/google/gemini/security.asccidoc +0 -274
- data/lib/starter_web/pages/public/manuals/integrations/google/gemini/security.hrml +0 -560
- data/lib/starter_web/pages/public/manuals/integrations/videojs/youtube-api.adoc +0 -1638
- data/lib/starter_web/pages/public/manuals/ytdl/man.adoc +0 -3020
- data/lib/starter_web/pages/public/manuals/ytdl/man.md +0 -2378
@@ -0,0 +1,3445 @@
|
|
1
|
+
[role="mt-5"]
|
2
|
+
[[swiper-modules]]
|
3
|
+
== Modules
|
4
|
+
|
5
|
+
SwiperJS modules are extensions that extend the functionality of the core
|
6
|
+
SwiperJS system. They offer additional and advanced features and customization
|
7
|
+
options beyond the basic functions of SwiperJS sliders.
|
8
|
+
|
9
|
+
[role="mt-4 mb-"]
|
10
|
+
[TIP]
|
11
|
+
====
|
12
|
+
Find available SwiperJS module descriptions also with the
|
13
|
+
https://swiperjs.com/swiper-api#modules[Swiper Documentation, {browser-window--new}].
|
14
|
+
====
|
15
|
+
|
16
|
+
Additional features::
|
17
|
+
Modules can be used when navigation, pagination, a scroll bar, or an effect,
|
18
|
+
such as a zoom effect, is required. A suitable module already exists for many
|
19
|
+
additional functions.
|
20
|
+
|
21
|
+
Customizatiion::
|
22
|
+
Modules allow detailed customization of a slideshow's look and behavior and
|
23
|
+
enable the adaptation of sliders to individual needs.
|
24
|
+
|
25
|
+
[role="mt-4 mb-5"]
|
26
|
+
[TIP]
|
27
|
+
====
|
28
|
+
For using SwiperJS in the *web browser* or for J1 template projects, all
|
29
|
+
*modules* are *already* integrated* into the JS and CSS **resources** as
|
30
|
+
*bundle* versions and can be used immediately.
|
31
|
+
|
32
|
+
It is advisable to configure only the required modules to keep the code and
|
33
|
+
configuration of a SwiperJS slider compact and clear.
|
34
|
+
====
|
35
|
+
|
36
|
+
.Available Modules for SwiperJS
|
37
|
+
[cols="3,9a", subs=+macros, options="header", width="100%", role="rtable mb-5"]
|
38
|
+
|===
|
39
|
+
|Name |Description \| Example
|
40
|
+
|
41
|
+
|<<Accessibility (a11y)>>
|
42
|
+
|Enable and configure Accessibility (a11y) module features of SwiperJS
|
43
|
+
available for screen readers and other assistive technologies.
|
44
|
+
|
45
|
+
[source, js]
|
46
|
+
----
|
47
|
+
const swiper = new Swiper('#swiper_id', {
|
48
|
+
// other parameters ...
|
49
|
+
a11y: {
|
50
|
+
prevSlideMessage: 'Go to previous slide',
|
51
|
+
nextSlideMessage: 'Go to next slide',
|
52
|
+
firstSlideMessage: 'This is the first slide',
|
53
|
+
lastSlideMessage: 'This is the last slide'
|
54
|
+
}
|
55
|
+
});
|
56
|
+
----
|
57
|
+
|
58
|
+
|<<Controller>>
|
59
|
+
|The Controller module allows to *synchronize* the movement of *multiple*
|
60
|
+
slider instances.
|
61
|
+
|
62
|
+
[source, js]
|
63
|
+
----
|
64
|
+
const swiper = new Swiper('#swiper_id', {
|
65
|
+
// other parameters ...
|
66
|
+
controller: {
|
67
|
+
inverse: true
|
68
|
+
}
|
69
|
+
});
|
70
|
+
----
|
71
|
+
|
72
|
+
|<<Cards Effect>>
|
73
|
+
|The Cards Effect module in SwiperJS adds a visually appealing, card-like
|
74
|
+
sliding animation for transitions between slides in a SwiperJS slider
|
75
|
+
instance.
|
76
|
+
|
77
|
+
[source, js]
|
78
|
+
----
|
79
|
+
const swiper = new Swiper('#swiper_id', {
|
80
|
+
// other parameters ...
|
81
|
+
effect: 'cards',
|
82
|
+
cardsEffect: {
|
83
|
+
// ...
|
84
|
+
}
|
85
|
+
});
|
86
|
+
----
|
87
|
+
|
88
|
+
|<<Coverflow Effect>>
|
89
|
+
|The Coverflow Effect module for SwiperJS creates a three-dimensional,
|
90
|
+
fan-like effect for the slides in a Swiper container. This effect is inspired
|
91
|
+
by the Coverflow view that you can see, for example, when selecting albums
|
92
|
+
in _iTunes_.
|
93
|
+
|
94
|
+
[source, js]
|
95
|
+
----
|
96
|
+
const swiper = new Swiper('#swiper_id', {
|
97
|
+
// other parameters ...
|
98
|
+
effect: 'coverflow',
|
99
|
+
coverflowEffect: {
|
100
|
+
rotate: 30,
|
101
|
+
slideShadows: false
|
102
|
+
}
|
103
|
+
});
|
104
|
+
----
|
105
|
+
|
106
|
+
|<<Creative Effect>>
|
107
|
+
|The creative effect module in SwiperJS generates creative and engaging visual
|
108
|
+
effects for the slides in a Swiper. The module allows for various custom
|
109
|
+
transformations to animate the slides dynamically as they transition between
|
110
|
+
each slide.
|
111
|
+
|
112
|
+
[source, js]
|
113
|
+
----
|
114
|
+
const swiper = new Swiper('#swiper_id', {
|
115
|
+
// other parameters ...
|
116
|
+
effect: 'creative',
|
117
|
+
creativeEffect: {
|
118
|
+
prev: {
|
119
|
+
// will set `translateZ(-400px)` on previous slides
|
120
|
+
translate: [0, 0, -400],
|
121
|
+
},
|
122
|
+
next: {
|
123
|
+
// will set `translateX(100%)` on next slides
|
124
|
+
translate: ['100%', 0, 0],
|
125
|
+
}
|
126
|
+
}
|
127
|
+
});
|
128
|
+
----
|
129
|
+
|
130
|
+
|<<Cube Effect>>
|
131
|
+
|The Cube Effect module in SwiperJS adds a 3D cube-like rotation effect to
|
132
|
+
the transitions between slides in a SwiperJS slider instance.
|
133
|
+
|
134
|
+
[source, js]
|
135
|
+
----
|
136
|
+
const swiper = new Swiper('#swiper_id', {
|
137
|
+
// other parameters ...
|
138
|
+
effect: 'cube',
|
139
|
+
cubeEffect: {
|
140
|
+
slideShadows: false
|
141
|
+
}
|
142
|
+
});
|
143
|
+
----
|
144
|
+
|
145
|
+
|<<Fade Effect>>
|
146
|
+
|The Fade Effect module in SwiperJS creates a smooth transition between each
|
147
|
+
slide. Instead of sliding or sliding the slides like other effects do, the
|
148
|
+
transition causes them to fade out and the next slide to fade in.
|
149
|
+
|
150
|
+
[source, js]
|
151
|
+
----
|
152
|
+
const swiper = new Swiper('#swiper_id', {
|
153
|
+
// other parameters ...
|
154
|
+
effect: 'fade',
|
155
|
+
fadeEffect: {
|
156
|
+
crossFade: true
|
157
|
+
}
|
158
|
+
});
|
159
|
+
----
|
160
|
+
|
161
|
+
|<<Flip Effect>>
|
162
|
+
|The Flip Effect module in SwiperJS creates a special transition effect
|
163
|
+
between individual slides. It gives the impression that the slides are being
|
164
|
+
turned like cards.
|
165
|
+
|
166
|
+
[source, js]
|
167
|
+
----
|
168
|
+
const swiper = new Swiper('#swiper_id', {
|
169
|
+
// other parameters ...
|
170
|
+
effect: 'flip',
|
171
|
+
flipEffect: {
|
172
|
+
slideShadows: false
|
173
|
+
}
|
174
|
+
});
|
175
|
+
----
|
176
|
+
|
177
|
+
|<<Free Mode>>
|
178
|
+
|The Free Mode module gives users a more fluid and interactive sliding
|
179
|
+
experience.
|
180
|
+
|
181
|
+
[source, js]
|
182
|
+
----
|
183
|
+
// other parameters ...
|
184
|
+
const swiper = new Swiper('#swiper_id', {
|
185
|
+
grid: {
|
186
|
+
rows: 2
|
187
|
+
}
|
188
|
+
});
|
189
|
+
----
|
190
|
+
|
191
|
+
|<<Grid>>
|
192
|
+
|The Grid module in SwiperJS allows to create *multi-row* sliders, effectively
|
193
|
+
arranging slides into a *grid-like* structure.
|
194
|
+
|
195
|
+
[source, js]
|
196
|
+
----
|
197
|
+
// other parameters ...
|
198
|
+
const swiper = new Swiper('#swiper_id', {
|
199
|
+
grid: {
|
200
|
+
rows: 2
|
201
|
+
}
|
202
|
+
});
|
203
|
+
----
|
204
|
+
|
205
|
+
|<<Hash Navigation>>
|
206
|
+
|Hash navigation is intended to have a link to specific slide that allows to
|
207
|
+
load a page with specific slide opened.
|
208
|
+
|
209
|
+
[source, js]
|
210
|
+
----
|
211
|
+
const swiper = new Swiper('#swiper_id', {
|
212
|
+
// other parameters ...
|
213
|
+
hashNavigation: {
|
214
|
+
replaceState: true
|
215
|
+
}
|
216
|
+
});
|
217
|
+
----
|
218
|
+
|
219
|
+
|<<History Navigation>>
|
220
|
+
|The History (Navigation) module in SwiperJS allows you to integrate Swiper
|
221
|
+
with history of the *browser*. This means, when users navigate between slides
|
222
|
+
in a Swiper, the browser's URL will be updated to reflect the current slide.
|
223
|
+
|
224
|
+
Object with history navigation parameters or boolean `true` to enable
|
225
|
+
with default settings.
|
226
|
+
|
227
|
+
[source, js]
|
228
|
+
----
|
229
|
+
const swiper = new Swiper('#swiper_id', {
|
230
|
+
// other parameters ...
|
231
|
+
history: {
|
232
|
+
replaceState: true
|
233
|
+
}
|
234
|
+
});
|
235
|
+
----
|
236
|
+
|
237
|
+
|<<Keyboard Control>>
|
238
|
+
|The Keyboard Control module in SwiperJS enables navigation through slides
|
239
|
+
using the keyboard.
|
240
|
+
|
241
|
+
[source, js]
|
242
|
+
----
|
243
|
+
// other parameters ...
|
244
|
+
const swiper = new Swiper('#swiper_id', {
|
245
|
+
keyboard: {
|
246
|
+
enabled: true,
|
247
|
+
onlyInViewport: false
|
248
|
+
}
|
249
|
+
});
|
250
|
+
----
|
251
|
+
|
252
|
+
|<<Lazy Loading>>
|
253
|
+
|The Lazy Loading module in SwiperJS controls the lazy loading of *images*
|
254
|
+
within a swiper. Lazy loading means images are *not loaded* until they
|
255
|
+
scroll into the browser's *visible area*. Using the module increases loading
|
256
|
+
speed, especially for websites with many images, and thus improves the user
|
257
|
+
experience.
|
258
|
+
|
259
|
+
|<<Manipulation>>
|
260
|
+
|The Manipulation module adds useful methods to SwiperJS for manipulating
|
261
|
+
slides. The module provides methods for dynamically adding, removing, and
|
262
|
+
rearranging slides within a SwiperJS slider.
|
263
|
+
|
264
|
+
|<<Mousewheel Control>>
|
265
|
+
|The Mousewheel Control module in SwiperJS enables users to navigate through
|
266
|
+
the slides of a SwiperJS instance using their mouse wheel.
|
267
|
+
|
268
|
+
[source, js]
|
269
|
+
----
|
270
|
+
// other parameters ...
|
271
|
+
const swiper = new Swiper('#swiper_id', {
|
272
|
+
mousewheel: {
|
273
|
+
invert: true
|
274
|
+
}
|
275
|
+
});
|
276
|
+
----
|
277
|
+
|
278
|
+
|<<Pagination>>
|
279
|
+
|The Pagination module in SwiperJS is a powerful tool for adding visual
|
280
|
+
indicators (like buttons) to a SwiperJS slide. The navigation elements make
|
281
|
+
it clear to users how many slides they view and which ones they view.
|
282
|
+
|
283
|
+
[source, js]
|
284
|
+
----
|
285
|
+
const swiper = new Swiper('#swiper_id', {
|
286
|
+
// other parameters ...
|
287
|
+
navigation: {
|
288
|
+
nextEl: '.swiper-button-next',
|
289
|
+
prevEl: '.swiper-button-prev'
|
290
|
+
}
|
291
|
+
});
|
292
|
+
----
|
293
|
+
|
294
|
+
|<<Parallax>>
|
295
|
+
|The Parallax module supports parallax transition effects for SwiperJS silder
|
296
|
+
*slides* and nested elements.
|
297
|
+
|
298
|
+
[source, js]
|
299
|
+
----
|
300
|
+
const swiper = new Swiper('#swiper_id', {
|
301
|
+
// other parameters ...
|
302
|
+
parallax: true
|
303
|
+
});
|
304
|
+
----
|
305
|
+
|
306
|
+
|<<Scrollbar>>
|
307
|
+
|The Scrollbar module in SwiperJS is a powerful tool that enhances user
|
308
|
+
interaction and provides visual feedback within a SwiperJS slider.
|
309
|
+
|
310
|
+
[source, js]
|
311
|
+
----
|
312
|
+
const swiper = new Swiper('#swiper_id', {
|
313
|
+
// other parameters ...
|
314
|
+
scrollbar: {
|
315
|
+
el: '.swiper-scrollbar',
|
316
|
+
draggable: true
|
317
|
+
}
|
318
|
+
});
|
319
|
+
----
|
320
|
+
|
321
|
+
|<<Thumbs>>
|
322
|
+
|The Thumbs module enables to create a thumbnail navigation for SliderJS
|
323
|
+
sliders.
|
324
|
+
|
325
|
+
[source, js]
|
326
|
+
----
|
327
|
+
const swiper = new Swiper('#swiper_id', {
|
328
|
+
// other parameters ...
|
329
|
+
thumbs: {
|
330
|
+
swiper: thumbsSwiper
|
331
|
+
}
|
332
|
+
});
|
333
|
+
----
|
334
|
+
|
335
|
+
|<<Virtual Slides>>
|
336
|
+
|The Virtual Slides module allows you to keep the required number of slides
|
337
|
+
in the DOM. The module is very useful in terms of performance and memory
|
338
|
+
issues if you have a lot of slides, especially slides with heavyweight DOM
|
339
|
+
trees or images.
|
340
|
+
|
341
|
+
[source, js]
|
342
|
+
----
|
343
|
+
// other parameters ...
|
344
|
+
const swiper = new Swiper('#swiper_id', {
|
345
|
+
virtual: {
|
346
|
+
slides: ['Slide 1', 'Slide 2', 'Slide 3', 'Slide 4', 'Slide 5']
|
347
|
+
}
|
348
|
+
});
|
349
|
+
----
|
350
|
+
|
351
|
+
|===
|
352
|
+
|
353
|
+
|
354
|
+
[role="mt-5"]
|
355
|
+
[[swiper-modules-a11y]]
|
356
|
+
=== Accessibility (a11y)
|
357
|
+
|
358
|
+
Enable and configure *Accessibility* (a11y) module features of SwiperJS
|
359
|
+
available for **screen readers** and other *assistive technologies*. By using
|
360
|
+
the parameter and its options, you can *significantly enhance* the
|
361
|
+
accessibility for *users with disabilities*:
|
362
|
+
|
363
|
+
Keyboard Navigation::
|
364
|
+
Enables users to navigate slides using keyboard arrows.
|
365
|
+
|
366
|
+
Screen Reader Support::
|
367
|
+
Provides meaningful information to *screen readers* about the slider,
|
368
|
+
such as the number of slides and the current slide.
|
369
|
+
|
370
|
+
Customizable Messages::
|
371
|
+
Allows you to provide custom messages for *screen readers*, improving
|
372
|
+
user experience.
|
373
|
+
|
374
|
+
[role="mt-4"]
|
375
|
+
[[swiper-modules-a11y-parameters]]
|
376
|
+
==== Parameters
|
377
|
+
|
378
|
+
Find all parameters available for the *Accessibility* (a11y) module.
|
379
|
+
|
380
|
+
.Accessibility (a11y) Parameters
|
381
|
+
[cols="3,2,3,4a", subs=+macros, options="header", width="100%", role="rtable mt-4 mb-5"]
|
382
|
+
|===
|
383
|
+
|Name |Type |Default |Description \| Example
|
384
|
+
|
385
|
+
|`containerMessage`
|
386
|
+
|null \| string
|
387
|
+
|null
|
388
|
+
|Message for *screen readers* for *outer* swiper container.
|
389
|
+
|
390
|
+
|`containerRole`
|
391
|
+
|null \| string
|
392
|
+
|null
|
393
|
+
|Value of the *role attribute* to be set on the *swiper container*.
|
394
|
+
|
395
|
+
|`containerRoleDescriptionMessage`
|
396
|
+
|null \| string
|
397
|
+
|null
|
398
|
+
|Message for *screen readers* describing the role of *outer* swiper container.
|
399
|
+
|
400
|
+
|`enabled`
|
401
|
+
|boolean
|
402
|
+
|`true`
|
403
|
+
|Enables the Accessibility Module (a11y).
|
404
|
+
|
405
|
+
|`firstSlideMessage`
|
406
|
+
|string
|
407
|
+
|_This is the first slide_
|
408
|
+
|Message for *screen readers* for *previous button* when swiper
|
409
|
+
is on *first slide*.
|
410
|
+
|
411
|
+
|`id`
|
412
|
+
|null \| string \| number
|
413
|
+
|null
|
414
|
+
|Value of the id attribute to be set on *swiper-wrapper*. If set to
|
415
|
+
`null` the *id* will be *generated automatically*.
|
416
|
+
|
417
|
+
|`itemRoleDescriptionMessage`
|
418
|
+
|null \| string
|
419
|
+
|null
|
420
|
+
|Message for *screen readers* describing *the role* of a slide element.
|
421
|
+
|
422
|
+
|`lastSlideMessage`
|
423
|
+
|string
|
424
|
+
|_This is the last slide_
|
425
|
+
|Message for *screen readers* for *next button* when swiper
|
426
|
+
is on *last slide*.
|
427
|
+
|
428
|
+
|`nextSlideMessage`
|
429
|
+
|string
|
430
|
+
|_Next slide_
|
431
|
+
|Message for *screen readers* for the *next button*.
|
432
|
+
|
433
|
+
|`notificationClass`
|
434
|
+
|string
|
435
|
+
|_swiper-notification_
|
436
|
+
|*CSS class name* of A11y notification.
|
437
|
+
|
438
|
+
|`paginationBulletMessage`
|
439
|
+
|string
|
440
|
+
|_Go to slide **{{index}}**_
|
441
|
+
|Message for *screen readers* for *single pagination bullet*.
|
442
|
+
|
443
|
+
|`prevSlideMessage`
|
444
|
+
|string
|
445
|
+
|_Previous slide_
|
446
|
+
|Message for *screen readers* for the *previous button*.
|
447
|
+
|
448
|
+
|`scrollOnFocus`
|
449
|
+
|boolean
|
450
|
+
|`true`
|
451
|
+
|Enables *scrolling* to the slide that has been *focused*.
|
452
|
+
|
453
|
+
|`slideLabelMessage`
|
454
|
+
|string
|
455
|
+
|_**{{index}}**_ \| _**{{slidesLength}}**_
|
456
|
+
|Message for *screen readers* describing the label of the *slide element*.
|
457
|
+
|
458
|
+
|`slideRole`
|
459
|
+
|string
|
460
|
+
|_group_
|
461
|
+
|Value of swiper slide *role attribute*.
|
462
|
+
|
463
|
+
|===
|
464
|
+
|
465
|
+
|
466
|
+
[[swiper-modules-autoplay]]
|
467
|
+
=== Autoplay
|
468
|
+
|
469
|
+
The Autoplay module in SwiperJS is a powerful feature that allows you to
|
470
|
+
automatically transition between slides in your slider at a specified
|
471
|
+
interval. Here's a breakdown of its key functionalities:
|
472
|
+
|
473
|
+
Automatic Slide Transitions::
|
474
|
+
The primary function is to automatically move the slider to the next
|
475
|
+
slide after a defined delay.
|
476
|
+
|
477
|
+
Customization::
|
478
|
+
You can extensively customize the autoplay behavior:
|
479
|
+
|
480
|
+
* Delay:
|
481
|
+
Control the time interval between each slide transition.
|
482
|
+
* Disable on Interaction:
|
483
|
+
Stop autoplay when the user interacts with the slider (e.g., swiping, clicking).
|
484
|
+
* Reverse Direction:
|
485
|
+
Change the direction of autoplay (from right to left or vice versa).
|
486
|
+
* Disable on Interaction:
|
487
|
+
Stop autoplay when the user interacts with the slider.
|
488
|
+
|
489
|
+
[role="mt-4"]
|
490
|
+
[[swiper-modules-autoplay-parameters]]
|
491
|
+
==== Parameters
|
492
|
+
|
493
|
+
Find all *Parameters* available for the *Autoplay* module.
|
494
|
+
|
495
|
+
.Autoplay Parameters
|
496
|
+
[cols="4,2,2,4a", subs=+macros, options="header", width="100%", role="rtable mt-4 mb-5"]
|
497
|
+
|===
|
498
|
+
|Name |Type |Default |Description \| Example
|
499
|
+
|
500
|
+
|`delay`
|
501
|
+
|number
|
502
|
+
|3000
|
503
|
+
|Delay between transitions (in ms). If this parameter is *not specified*,
|
504
|
+
auto play will be *disabled*.
|
505
|
+
|
506
|
+
If you need to specify different delay for specific slides you can do it
|
507
|
+
by using `data-swiper-autoplay` (in ms) *attribute* individually on each
|
508
|
+
slide.
|
509
|
+
|
510
|
+
[source, html]
|
511
|
+
----
|
512
|
+
<!-- hold this slide for 2 seconds -->
|
513
|
+
<div class="swiper-slide" data-swiper-autoplay="2000">
|
514
|
+
----
|
515
|
+
|
516
|
+
|`disableOnInteraction`
|
517
|
+
|boolean
|
518
|
+
|`true`
|
519
|
+
|Set to `false` and autoplay will *not be disabled* after *user interactions*
|
520
|
+
(swiping). It will be restarted every time after interaction.
|
521
|
+
|
522
|
+
|`pauseOnMouseEnter`
|
523
|
+
|boolean
|
524
|
+
|`false`
|
525
|
+
|When enabled, autoplay will *be paused* on pointer (mouse) enter
|
526
|
+
*over Swiper container*.
|
527
|
+
|
528
|
+
|`reverseDirection`
|
529
|
+
|boolean
|
530
|
+
|`false`
|
531
|
+
|Enables autoplay in *reverse direction*.
|
532
|
+
|
533
|
+
|`stopOnLastSlide`
|
534
|
+
|boolean
|
535
|
+
|`false`
|
536
|
+
|Enable this parameter and autoplay is *stopped* when the *last slide*
|
537
|
+
is reached.
|
538
|
+
|
539
|
+
[CAUTION]
|
540
|
+
====
|
541
|
+
This setting has *no effect* in *loop mode*.
|
542
|
+
====
|
543
|
+
|
544
|
+
|`waitForTransition`
|
545
|
+
|boolean
|
546
|
+
|`true`
|
547
|
+
|When enabled autoplay will *wait for wrapper transition* to *continue*.
|
548
|
+
Can be disabled in case of using Virtual Translate when your slider may
|
549
|
+
*not* have transitions.
|
550
|
+
|
551
|
+
|===
|
552
|
+
|
553
|
+
[role="mt-4"]
|
554
|
+
[[swiper-modules-autoplay-properties]]
|
555
|
+
==== Properties
|
556
|
+
|
557
|
+
Find all *Properties* available for the *Autoplay* module.
|
558
|
+
|
559
|
+
.Autoplay Properties
|
560
|
+
[cols="3,3,6a", subs=+macros, options="header", width="100%", role="rtable mt-4 mb-5"]
|
561
|
+
|===
|
562
|
+
|Name |Type |Description
|
563
|
+
|
564
|
+
|`paused`
|
565
|
+
|boolean
|
566
|
+
|Indicate whether autoplay is paused.
|
567
|
+
|
568
|
+
|`running`
|
569
|
+
|boolean
|
570
|
+
|Indicate whether autoplay is enabled and running.
|
571
|
+
|
572
|
+
|`timeLeft`
|
573
|
+
|number
|
574
|
+
|If autoplay is *paused*, it contains the *time left* (in ms) before
|
575
|
+
transition starts to *next slide*.
|
576
|
+
|
577
|
+
|===
|
578
|
+
|
579
|
+
[role="mt-4"]
|
580
|
+
[[swiper-modules-autoplay-methods]]
|
581
|
+
==== Methods
|
582
|
+
|
583
|
+
Find all *Methods* available for the *Autoplay* module.
|
584
|
+
|
585
|
+
.Autoplay Methods
|
586
|
+
[cols="3,9a", subs=+macros, options="header", width="100%", role="rtable mt-4 mb-5"]
|
587
|
+
|===
|
588
|
+
|Name |Description
|
589
|
+
|
590
|
+
|`paused`
|
591
|
+
|Pause autoplay.
|
592
|
+
|
593
|
+
|`resume`
|
594
|
+
|Resume autoplay.
|
595
|
+
|
596
|
+
|`start`
|
597
|
+
|Starts autoplay.
|
598
|
+
|
599
|
+
|`stop`
|
600
|
+
|Stops autoplay.
|
601
|
+
|
602
|
+
|===
|
603
|
+
|
604
|
+
Find all events availalable for the
|
605
|
+
[role="mt-4"]
|
606
|
+
[[swiper-modules-autoplay-events]]
|
607
|
+
==== Events
|
608
|
+
|
609
|
+
Find all *Events* available for the *Autoplay* module.
|
610
|
+
|
611
|
+
[NOTE]
|
612
|
+
====
|
613
|
+
All events receives *swiper* event *data* as an *argument*.
|
614
|
+
====
|
615
|
+
|
616
|
+
[role="mt-4"]
|
617
|
+
[[swiper-modules-event-autoplay]]
|
618
|
+
===== autoplay
|
619
|
+
|
620
|
+
Event will be fired when *slide changed* with autoplay.
|
621
|
+
|
622
|
+
[cols="12a", subs=+macros, options="header", width="100%", role="rtable mt-4 mb-5"]
|
623
|
+
|===
|
624
|
+
|Usage
|
625
|
+
|
626
|
+
|
|
627
|
+
[source, js]
|
628
|
+
----
|
629
|
+
const swiper = new Swiper('#swiper_id', {
|
630
|
+
// option settings ...
|
631
|
+
on: {
|
632
|
+
autoplay: (swiper) => {
|
633
|
+
// do something
|
634
|
+
}
|
635
|
+
}
|
636
|
+
});
|
637
|
+
----
|
638
|
+
|
639
|
+
|===
|
640
|
+
|
641
|
+
[role="mt-4"]
|
642
|
+
[[swiper-modules-event-autoplayPause]]
|
643
|
+
===== autoplayPause
|
644
|
+
|
645
|
+
Event will be fired on autoplay *pause*.
|
646
|
+
|
647
|
+
[cols="12a", subs=+macros, options="header", width="100%", role="rtable mt-4 mb-5"]
|
648
|
+
|===
|
649
|
+
|Usage
|
650
|
+
|
651
|
+
|
|
652
|
+
[source, js]
|
653
|
+
----
|
654
|
+
const swiper = new Swiper('#swiper_id', {
|
655
|
+
// option settings ...
|
656
|
+
on: {
|
657
|
+
autoplayPause: (swiper) => {
|
658
|
+
// do something
|
659
|
+
}
|
660
|
+
}
|
661
|
+
});
|
662
|
+
----
|
663
|
+
|
664
|
+
|===
|
665
|
+
|
666
|
+
[role="mt-4"]
|
667
|
+
[[swiper-modules-event-autoplayResume]]
|
668
|
+
===== autoplayResume
|
669
|
+
|
670
|
+
Event will be fired on autoplay *resume*.
|
671
|
+
|
672
|
+
[cols="12a", subs=+macros, options="header", width="100%", role="rtable mt-4 mb-5"]
|
673
|
+
|===
|
674
|
+
|Usage
|
675
|
+
|
676
|
+
|
|
677
|
+
[source, js]
|
678
|
+
----
|
679
|
+
const swiper = new Swiper('#swiper_id', {
|
680
|
+
// option settings ...
|
681
|
+
on: {
|
682
|
+
autoplayResume: (swiper) => {
|
683
|
+
// do something
|
684
|
+
}
|
685
|
+
}
|
686
|
+
});
|
687
|
+
----
|
688
|
+
|
689
|
+
|===
|
690
|
+
|
691
|
+
[role="mt-4"]
|
692
|
+
[[swiper-modules-event-autoplayStart]]
|
693
|
+
===== autoplayStart
|
694
|
+
|
695
|
+
Event will be fired in case autoplay has been *started*.
|
696
|
+
|
697
|
+
[cols="12a", subs=+macros, options="header", width="100%", role="rtable mt-4 mb-5"]
|
698
|
+
|===
|
699
|
+
|Usage
|
700
|
+
|
701
|
+
|
|
702
|
+
[source, js]
|
703
|
+
----
|
704
|
+
const swiper = new Swiper('#swiper_id', {
|
705
|
+
// option settings ...
|
706
|
+
on: {
|
707
|
+
autoplayStart: (swiper) => {
|
708
|
+
// do something
|
709
|
+
}
|
710
|
+
}
|
711
|
+
});
|
712
|
+
----
|
713
|
+
|
714
|
+
|===
|
715
|
+
|
716
|
+
[role="mt-4"]
|
717
|
+
[[swiper-modules-event-autoplayStop]]
|
718
|
+
===== autoplayStop
|
719
|
+
|
720
|
+
Event will be fired when autoplay has been *stopped*.
|
721
|
+
|
722
|
+
[cols="12a", subs=+macros, options="header", width="100%", role="rtable mt-4 mb-5"]
|
723
|
+
|===
|
724
|
+
|Usage
|
725
|
+
|
726
|
+
|
|
727
|
+
[source, js]
|
728
|
+
----
|
729
|
+
const swiper = new Swiper('#swiper_id', {
|
730
|
+
// option settings ...
|
731
|
+
on: {
|
732
|
+
autoplayStop: (swiper) => {
|
733
|
+
// do something
|
734
|
+
}
|
735
|
+
}
|
736
|
+
});
|
737
|
+
----
|
738
|
+
|
739
|
+
|===
|
740
|
+
|
741
|
+
[role="mt-4"]
|
742
|
+
[[swiper-modules-event-autoplayTimeLeft]]
|
743
|
+
===== autoplayTimeLeft
|
744
|
+
|
745
|
+
Event fires *continuously* while autoplay is *enabled*. It
|
746
|
+
contains *time left* (in ms) before transition to next slide
|
747
|
+
and *percentage* of the *time* related to *autoplay delay*.
|
748
|
+
|
749
|
+
[NOTE]
|
750
|
+
====
|
751
|
+
Receives *swiper*, *timeLeft*, *percentage* event *data* as *arguments*.
|
752
|
+
====
|
753
|
+
|
754
|
+
[cols="12a", subs=+macros, options="header", width="100%", role="rtable mt-4 mb-5"]
|
755
|
+
|===
|
756
|
+
|Usage
|
757
|
+
|
758
|
+
|
|
759
|
+
[source, js]
|
760
|
+
----
|
761
|
+
const swiper = new Swiper('#swiper_id', {
|
762
|
+
// option settings ...
|
763
|
+
on: {
|
764
|
+
autoplayTimeLeft: (swiper, timeLeft, percentage) => {
|
765
|
+
// do something
|
766
|
+
}
|
767
|
+
}
|
768
|
+
});
|
769
|
+
----
|
770
|
+
|
771
|
+
|===
|
772
|
+
|
773
|
+
|
774
|
+
[role="mt-5"]
|
775
|
+
[[swiper-modules-controller]]
|
776
|
+
=== Controller
|
777
|
+
|
778
|
+
In SwiperJS, the Controller module allows to *synchronize* the *movement*
|
779
|
+
of one or *multiple* slider instances. This is incredibly useful for
|
780
|
+
creating complex, *interconnected* slider experiences. Here's a breakdown of
|
781
|
+
its key functionalities:
|
782
|
+
|
783
|
+
Master/Slave Relationship::
|
784
|
+
You designate one swiper instance as the *master* and others as *slaves*.
|
785
|
+
|
786
|
+
Synchronized Slides::
|
787
|
+
When the *master* swiper *changes* slides, the slave swipers automatically
|
788
|
+
move to the *corresponding* position.
|
789
|
+
|
790
|
+
Inverse Control::
|
791
|
+
You can configure the slaves to move in the *opposite* direction of the
|
792
|
+
master.
|
793
|
+
|
794
|
+
By Slide or by Progress::
|
795
|
+
Control can be based on the *slide index* of the master or its overall
|
796
|
+
*progress percentage*.
|
797
|
+
|
798
|
+
|
799
|
+
[role="mt-4"]
|
800
|
+
[[swiper-modules-controller-parameters]]
|
801
|
+
==== Parameters
|
802
|
+
|
803
|
+
Find all parameters available for the *Controller* module.
|
804
|
+
|
805
|
+
.Controller Parameters
|
806
|
+
[cols="3,2,3,4a", subs=+macros, options="header", width="100%", role="rtable mt-4 mb-5"]
|
807
|
+
|===
|
808
|
+
|Name |Type |Default |Description \| Example
|
809
|
+
|
810
|
+
|`by`
|
811
|
+
|_slide_ \| _container_
|
812
|
+
|_slide_
|
813
|
+
|Defines, as a *string*, to *control* another slider or (multiple sliders)
|
814
|
+
slide by slide. With respect to other slider's *grid* or depending on all
|
815
|
+
sliders *container*, depending on total slider percentage.
|
816
|
+
|
817
|
+
|`control`
|
818
|
+
|any
|
819
|
+
|*no default*
|
820
|
+
|Pass another sniper instance or an *array* of (multiple) sniper instances
|
821
|
+
that should be controlled by this swiper. Also accepts a *string* with a
|
822
|
+
*CSS selector* or the *HTML Element* of a swiper.
|
823
|
+
|
824
|
+
|`inverse`
|
825
|
+
|boolean
|
826
|
+
|`false`
|
827
|
+
|If set to `true`, the controlling *direction* will be *inverted*.
|
828
|
+
|
829
|
+
|===
|
830
|
+
|
831
|
+
[role="mt-4"]
|
832
|
+
[[swiper-modules-controller-methods]]
|
833
|
+
==== Methods
|
834
|
+
|
835
|
+
Find below available *Methods* for the SwiperJS *Controller* module.
|
836
|
+
|
837
|
+
.Controller Methods
|
838
|
+
[cols="3,9a", subs=+macros, options="header", width="100%", role="rtable mt-4 mb-5"]
|
839
|
+
|===
|
840
|
+
|Method |Description \| Example
|
841
|
+
|
842
|
+
|`control`
|
843
|
+
|Pass a swiper instance or an *array* of (multiple) instances that
|
844
|
+
should be *controlled* by this *swiper*.
|
845
|
+
|
846
|
+
[source, js]
|
847
|
+
----
|
848
|
+
// single instance
|
849
|
+
swiper.control(instance);
|
850
|
+
|
851
|
+
// multiple instances
|
852
|
+
swiper.control(instances[]);
|
853
|
+
----
|
854
|
+
|
855
|
+
|===
|
856
|
+
|
857
|
+
|
858
|
+
[role="mt-5"]
|
859
|
+
[[swiper-modules-cards-effect]]
|
860
|
+
=== Cards Effect
|
861
|
+
|
862
|
+
The Cards Effect module in SwiperJS adds a visually appealing, card-like
|
863
|
+
sliding *animation* for *transitions* between slides in a SwiperJS slider
|
864
|
+
instance.
|
865
|
+
|
866
|
+
[NOTE]
|
867
|
+
====
|
868
|
+
Be sure to have the parameter `effect` set to _cards_ in order to make the
|
869
|
+
module work.
|
870
|
+
====
|
871
|
+
|
872
|
+
[role="mt-4"]
|
873
|
+
[[swiper-modules-cards-effect-parameters]]
|
874
|
+
==== Parameters
|
875
|
+
|
876
|
+
Find all parameters available for the *Cards Effect* module.
|
877
|
+
|
878
|
+
.Cards Effect Parameters
|
879
|
+
[cols="3,2,3,4a", subs=+macros, options="header", width="100%", role="rtable mt-4 mb-5"]
|
880
|
+
|===
|
881
|
+
|Name |Type |Default |Description
|
882
|
+
|
883
|
+
|`perSlideOffset`
|
884
|
+
|number
|
885
|
+
|8
|
886
|
+
|Offset distance per slide (in px).
|
887
|
+
|
888
|
+
|`perSlideRotate`
|
889
|
+
|number
|
890
|
+
|2
|
891
|
+
|Rotate angle per slide (in degrees).
|
892
|
+
|
893
|
+
|`rotate`
|
894
|
+
|boolean
|
895
|
+
|`true`
|
896
|
+
|Enables cards rotation.
|
897
|
+
|
898
|
+
|`slideShadows`
|
899
|
+
|boolean
|
900
|
+
|`true`
|
901
|
+
|Enables slides shadows.
|
902
|
+
|
903
|
+
|===
|
904
|
+
|
905
|
+
|
906
|
+
[role="mt-5"]
|
907
|
+
[[swiper-modules-scover-effect]]
|
908
|
+
=== Coverflow Effect
|
909
|
+
|
910
|
+
Be sure to have the `effect` param set to `'coverflow'` in order for
|
911
|
+
this to work.
|
912
|
+
|
913
|
+
[role="mt-4"]
|
914
|
+
[[swiper-modules-cover-effect-parameters]]
|
915
|
+
==== Parameters
|
916
|
+
|
917
|
+
Find all parameters available for the *Coverflow Effect* module.
|
918
|
+
|
919
|
+
.Coverflow Effect Parameters
|
920
|
+
[cols="3,2,3,4a", subs=+macros, options="header", width="100%", role="rtable mt-4 mb-5"]
|
921
|
+
|===
|
922
|
+
|Name |Type |Default |Description
|
923
|
+
|
924
|
+
|`depth`
|
925
|
+
|number
|
926
|
+
|100
|
927
|
+
|Depth offset in px (slides translate in Z axis).
|
928
|
+
|
929
|
+
|`modifier`
|
930
|
+
|number
|
931
|
+
|1
|
932
|
+
|Effect multiplier.
|
933
|
+
|
934
|
+
|`rotate`
|
935
|
+
|number
|
936
|
+
|50
|
937
|
+
|Slide rotate in degrees.
|
938
|
+
|
939
|
+
|`scale`
|
940
|
+
|number
|
941
|
+
|1
|
942
|
+
|Slide scale effect.
|
943
|
+
|
944
|
+
|`slideShadows`
|
945
|
+
|boolean
|
946
|
+
|`true`
|
947
|
+
|Enables slides shadows.
|
948
|
+
|
949
|
+
|`stretch`
|
950
|
+
|number
|
951
|
+
|0
|
952
|
+
|Stretch space between slides (in px).
|
953
|
+
|===
|
954
|
+
|
955
|
+
|
956
|
+
[role="mt-5"]
|
957
|
+
[[swiper-modules-creative-effect]]
|
958
|
+
=== Creative Effect
|
959
|
+
|
960
|
+
The creative effect module in SwiperJS generates creative and engaging
|
961
|
+
visual effects for the slides in a Swiper. It allows for a variety of custom
|
962
|
+
transformations to animate the slides dynamically as they transition between
|
963
|
+
each slide.
|
964
|
+
|
965
|
+
Here's a breakdown of its key features:
|
966
|
+
|
967
|
+
Customizable Transitions::
|
968
|
+
Allows you to define unique transformations for each slide (previous, next,
|
969
|
+
and active) using properties like translate, rotate, scale, opacity, and more.
|
970
|
+
This flexibility enables you to create a wide range of effects, from subtle
|
971
|
+
shifts to dramatic 3D transformations.
|
972
|
+
|
973
|
+
Precise Control::
|
974
|
+
Offers fine-grained control over the timing and appearance of each effect
|
975
|
+
by manipulating CSS properties directly. You can adjust the intensity,
|
976
|
+
duration, and easing of transitions to achieve the desired visual impact.
|
977
|
+
|
978
|
+
[NOTE]
|
979
|
+
====
|
980
|
+
Be sure to have the parameter `effect` set to _creative_ in order to make
|
981
|
+
the module work.
|
982
|
+
====
|
983
|
+
|
984
|
+
[role="mt-4"]
|
985
|
+
[[swiper-modules-creative-effect-parameters]]
|
986
|
+
==== Parameters
|
987
|
+
|
988
|
+
Find all parameters available for the SwiperJS *Creative Effect* module.
|
989
|
+
|
990
|
+
.Creative Effect Parameters
|
991
|
+
[cols="3,2,3,4a", subs=+macros, options="header", width="100%", role="rtable mt-4 mb-5"]
|
992
|
+
|===
|
993
|
+
|Name |Type |Default |Description \| Example
|
994
|
+
|
995
|
+
|`limitProgress`
|
996
|
+
|number
|
997
|
+
|1
|
998
|
+
|Limit progress/offset to amount of side slides. If `1`, then slides all
|
999
|
+
slides after prev/next will have same state. If `2`, then all slides
|
1000
|
+
after 2nd before/after active will have same state, etc.
|
1001
|
+
|
1002
|
+
|`next`
|
1003
|
+
|CreativeEffectTransform
|
1004
|
+
|*no default*
|
1005
|
+
|Next slide transformations.
|
1006
|
+
|
1007
|
+
// kapott 1
|
1008
|
+
|
1009
|
+
|`perspective`
|
1010
|
+
|boolean
|
1011
|
+
|`true`
|
1012
|
+
|Enable this parameter if your custom transforms require 3D transformations
|
1013
|
+
like `translateZ`, `rotateX`, `rotateY.
|
1014
|
+
|
1015
|
+
|`prev`
|
1016
|
+
|CreativeEffectTransform
|
1017
|
+
|*no defaults*
|
1018
|
+
|Previous slide transformations. Accepts object of the following type:
|
1019
|
+
|
1020
|
+
// kapott 2
|
1021
|
+
|
1022
|
+
|`progressMultiplier`
|
1023
|
+
|number
|
1024
|
+
|1
|
1025
|
+
|Allows to multiply slides transformations and opacity.
|
1026
|
+
|
1027
|
+
|`shadowPerProgress`
|
1028
|
+
|boolean
|
1029
|
+
|`false`
|
1030
|
+
|Splits shadow "opacity" per slide based on `limitProgress` (only if
|
1031
|
+
transformation shadows enabled). E.g. setting `limitProgress: 2` and
|
1032
|
+
enabling `shadowPerProgress`, will set shadow opacity to `0.5` and
|
1033
|
+
`1` on two slides next to active. With this parameter disabled, all
|
1034
|
+
slides beside active will have shadow with `1` opacity
|
1035
|
+
|
1036
|
+
|===
|
1037
|
+
|
1038
|
+
|
1039
|
+
[role="mt-5"]
|
1040
|
+
[[swiper-modules-cube-effect]]
|
1041
|
+
=== Cube Effect
|
1042
|
+
|
1043
|
+
The Cube Effect module in SwiperJS adds a 3D cube-like rotation effect
|
1044
|
+
to the *transitions* between slides in a SwiperJS slider instance.
|
1045
|
+
|
1046
|
+
[NOTE]
|
1047
|
+
====
|
1048
|
+
Be sure to have the parameter `effect` set to _cube_ in order to make the
|
1049
|
+
module work.
|
1050
|
+
====
|
1051
|
+
|
1052
|
+
[role="mt-4"]
|
1053
|
+
[[swiper-modules-cube-effect-parameters]]
|
1054
|
+
==== Parameters
|
1055
|
+
|
1056
|
+
Find all parameters available for the *Cube Effect* module.
|
1057
|
+
|
1058
|
+
.Cube Effect Parameters
|
1059
|
+
[cols="3,2,3,4a", subs=+macros, options="header", width="100%", role="rtable mt-4 mb-5"]
|
1060
|
+
|===
|
1061
|
+
|Name |Type |Default |Description
|
1062
|
+
|
1063
|
+
|`shadow`
|
1064
|
+
|boolean
|
1065
|
+
|`true`
|
1066
|
+
|Enables main slider shadow.
|
1067
|
+
|
1068
|
+
|`shadowOffset`
|
1069
|
+
|number
|
1070
|
+
|20
|
1071
|
+
|Main shadow offset in px.
|
1072
|
+
|
1073
|
+
|`shadowScale`
|
1074
|
+
|number
|
1075
|
+
|0.94
|
1076
|
+
|Main shadow scale ratio.
|
1077
|
+
|
1078
|
+
|`slideShadows`
|
1079
|
+
|boolean
|
1080
|
+
|`true`
|
1081
|
+
|Enables slides shadows.
|
1082
|
+
|
1083
|
+
|===
|
1084
|
+
|
1085
|
+
|
1086
|
+
[role="mt-5"]
|
1087
|
+
[[swiper-modules-fade-effect]]
|
1088
|
+
=== Fade Effect
|
1089
|
+
|
1090
|
+
The Fade Effect module in SwiperJS creates a smooth transition between each
|
1091
|
+
slide. Instead of sliding or sliding the slides like other effects do, the
|
1092
|
+
transition causes them to fade out and the next slide to fade in.
|
1093
|
+
|
1094
|
+
[NOTE]
|
1095
|
+
====
|
1096
|
+
Be sure to have the `effect` parameter set to _fade_ in order in order to
|
1097
|
+
make the module work.
|
1098
|
+
|
1099
|
+
Parameter `crossFade` should be set to `true` in order to avoid seeing
|
1100
|
+
content *behind* or *underneath*.
|
1101
|
+
====
|
1102
|
+
|
1103
|
+
[role="mt-4"]
|
1104
|
+
[[swiper-modules-fade-effect-parameters]]
|
1105
|
+
==== Parameters
|
1106
|
+
|
1107
|
+
Find all parameters available for the *Fade Effect* module.
|
1108
|
+
|
1109
|
+
.Fade Effect Parameters
|
1110
|
+
[cols="3,2,3,4a", subs=+macros, options="header", width="100%", role="rtable mt-4 mb-5"]
|
1111
|
+
|===
|
1112
|
+
|Name |Type |Default |Description
|
1113
|
+
|
1114
|
+
|`crossFade`
|
1115
|
+
|boolean
|
1116
|
+
|`false`
|
1117
|
+
|Enables slides cross fade.
|
1118
|
+
|===
|
1119
|
+
|
1120
|
+
|
1121
|
+
[role="mt-5"]
|
1122
|
+
[[swiper-modules-flip-effect]]
|
1123
|
+
=== Flip Effect
|
1124
|
+
|
1125
|
+
The Flip Effect module in SwiperJS adds a 3D flip animation to the slides
|
1126
|
+
in your slider.
|
1127
|
+
|
1128
|
+
[NOTE]
|
1129
|
+
====
|
1130
|
+
Be sure to have the parameter `effect` set to _flip_ in order to make the
|
1131
|
+
module work.
|
1132
|
+
====
|
1133
|
+
|
1134
|
+
[role="mt-4"]
|
1135
|
+
[[swiper-modules-flip-effect-parameters]]
|
1136
|
+
==== Parameters
|
1137
|
+
|
1138
|
+
Find all parameters available for the *Flip Effect* module.
|
1139
|
+
|
1140
|
+
.Flip Effect Parameters
|
1141
|
+
[cols="3,2,3,4a", subs=+macros, options="header", width="100%", role="rtable mt-4 mb-5"]
|
1142
|
+
|===
|
1143
|
+
|Name |Type |Default |Description
|
1144
|
+
|
1145
|
+
|`limitRotation`
|
1146
|
+
|boolean
|
1147
|
+
|`true`
|
1148
|
+
|Limit edge slides rotation.
|
1149
|
+
|
1150
|
+
|`slideShadows`
|
1151
|
+
|boolean
|
1152
|
+
|`true`
|
1153
|
+
|Enables slides shadows.
|
1154
|
+
|
1155
|
+
|===
|
1156
|
+
|
1157
|
+
|
1158
|
+
[role="mt-5"]
|
1159
|
+
[[swiper-modules-free-mode]]
|
1160
|
+
=== Free Mode
|
1161
|
+
|
1162
|
+
In SwiperJS, the Free Mode module allows for a more *fluid* and *interactive*
|
1163
|
+
sliding experience. Here's a breakdown of its key features:
|
1164
|
+
|
1165
|
+
Free Movement::
|
1166
|
+
Slides can be freely dragged and positioned anywhere within the slider
|
1167
|
+
container.
|
1168
|
+
|
1169
|
+
Momentum::
|
1170
|
+
When the user releases the slide, it continues to move with momentum,
|
1171
|
+
simulating realistic inertia.
|
1172
|
+
|
1173
|
+
Sticky Option::
|
1174
|
+
This *optional* feature *snaps* the slide to the nearest position when
|
1175
|
+
it comes to rest, providing a more controlled experience.
|
1176
|
+
|
1177
|
+
|
1178
|
+
[role="mt-4"]
|
1179
|
+
[[swiper-modules-free-mode-parameters]]
|
1180
|
+
==== Parameters
|
1181
|
+
|
1182
|
+
Find all parameters available for the *Free Mode* module.
|
1183
|
+
|
1184
|
+
.Free Mode Parameters
|
1185
|
+
[cols="3,2,3,4a", subs=+macros, options="header", width="100%", role="rtable mt-4 mb-5"]
|
1186
|
+
|===
|
1187
|
+
|Name |Type |Default |Description
|
1188
|
+
|
1189
|
+
|`enabled`
|
1190
|
+
|boolean
|
1191
|
+
|`false`
|
1192
|
+
|Whether the free mode is enabled.
|
1193
|
+
|
1194
|
+
|`minimumVelocity`
|
1195
|
+
|number
|
1196
|
+
|0.02
|
1197
|
+
|Minimum touchmove-velocity required to trigger free mode momentum.
|
1198
|
+
|
1199
|
+
|`momentum`
|
1200
|
+
|boolean
|
1201
|
+
|`true`
|
1202
|
+
|If enabled, then slide will keep moving for a while after you release it.
|
1203
|
+
|
1204
|
+
|`momentumBounce`
|
1205
|
+
|boolean
|
1206
|
+
|`true`
|
1207
|
+
|Set to `false` if you want to disable momentum bounce in free mode.
|
1208
|
+
|
1209
|
+
|`momentumBounceRatio`
|
1210
|
+
|number
|
1211
|
+
|1
|
1212
|
+
|Higher value produces larger momentum bounce effect.
|
1213
|
+
|
1214
|
+
|`momentumRatio`
|
1215
|
+
|number
|
1216
|
+
|1
|
1217
|
+
|Higher value produces larger momentum distance after you release slider.
|
1218
|
+
|
1219
|
+
|`momentumVelocityRatio`
|
1220
|
+
|number
|
1221
|
+
|1
|
1222
|
+
|Higher value produces larger momentum velocity after you release slider.
|
1223
|
+
|
1224
|
+
|`sticky`
|
1225
|
+
|boolean
|
1226
|
+
|`false`
|
1227
|
+
|Set to enabled to enable snap to slides positions in free mode.
|
1228
|
+
|
1229
|
+
|===
|
1230
|
+
|
1231
|
+
|
1232
|
+
[role="mt-5"]
|
1233
|
+
[[swiper-modules-grid]]
|
1234
|
+
=== Grid
|
1235
|
+
|
1236
|
+
The Grid module in SwiperJS allows you to create multi-row sliders,
|
1237
|
+
effectively arranging slides into a grid-like structure. Here's a
|
1238
|
+
breakdown of its key features:
|
1239
|
+
|
1240
|
+
Multi-row layouts::
|
1241
|
+
Define the number of rows (`grid.rows`) to control how slides are distributed
|
1242
|
+
within the slider.
|
1243
|
+
|
1244
|
+
Fill direction::
|
1245
|
+
Control how slides fill the rows:
|
1246
|
+
|
1247
|
+
* grid.fill: *row*, Slides fill rows from left to right.
|
1248
|
+
* grid.fill: *column*, Slides fill columns from top to bottom.
|
1249
|
+
|
1250
|
+
[role="mt-4"]
|
1251
|
+
[[swiper-modules-grid-parameters]]
|
1252
|
+
==== Parameters
|
1253
|
+
|
1254
|
+
Find all parameters available for the *Grid* module.
|
1255
|
+
|
1256
|
+
.Grid Parameters
|
1257
|
+
[cols="3,2,3,4a", subs=+macros, options="header", width="100%", role="rtable mt-4 mb-5"]
|
1258
|
+
|===
|
1259
|
+
|Name |Type |Default |Description \| Example
|
1260
|
+
|
1261
|
+
|`fill`
|
1262
|
+
|_row_ \| _column_
|
1263
|
+
|_column_
|
1264
|
+
| Can be _column_ or _row_. Defines how slides should fill rows,
|
1265
|
+
by column or by row.
|
1266
|
+
|
1267
|
+
[NOTE]
|
1268
|
+
====
|
1269
|
+
If used with loop mode make sure number of slides is even specified in
|
1270
|
+
loop mode requirements, or enable `loopAddBlankSlides` parameter
|
1271
|
+
====
|
1272
|
+
|
1273
|
+
|`rows`
|
1274
|
+
|number
|
1275
|
+
|1
|
1276
|
+
|Number of slides rows, for multirow layout.
|
1277
|
+
|
1278
|
+
|===
|
1279
|
+
|
1280
|
+
|
1281
|
+
[role="mt-5"]
|
1282
|
+
[[swiper-modules-hash-navigation]]
|
1283
|
+
=== Hash Navigation
|
1284
|
+
|
1285
|
+
Hash navigation is intended to have a link to specific slide that allows
|
1286
|
+
to load page with specific slide opened.
|
1287
|
+
|
1288
|
+
To make it work, you need to enable it by passing:
|
1289
|
+
|
1290
|
+
* `hashNavigation: true` parameter and adding slides hashes in
|
1291
|
+
* `data-hash` attribute:
|
1292
|
+
|
1293
|
+
[role="mt-4"]
|
1294
|
+
.HTML Structure
|
1295
|
+
[source, html]
|
1296
|
+
----
|
1297
|
+
<div id="swiperHashNavigation" class="swiper swiper-container">
|
1298
|
+
<div class="swiper-wrapper">
|
1299
|
+
<div class="swiper-slide" data-hash="slide1">Slide 1</div>
|
1300
|
+
<div class="swiper-slide" data-hash="slide2">Slide 2</div>
|
1301
|
+
<div class="swiper-slide" data-hash="slide3">Slide 3</div>
|
1302
|
+
<div class="swiper-slide" data-hash="slide4">Slide 4</div>
|
1303
|
+
<div class="swiper-slide" data-hash="slide5">Slide 5</div>
|
1304
|
+
...
|
1305
|
+
</div>
|
1306
|
+
</div>
|
1307
|
+
----
|
1308
|
+
|
1309
|
+
[role="mb-5"]
|
1310
|
+
.Swiper Initialization
|
1311
|
+
[source, js]
|
1312
|
+
----
|
1313
|
+
const swiper = new Swiper('#swiperHashNavigation', {
|
1314
|
+
//enable hash navigation
|
1315
|
+
hashNavigation: true
|
1316
|
+
});
|
1317
|
+
----
|
1318
|
+
|
1319
|
+
[role="mt-4"]
|
1320
|
+
[[swiper-modules-hash-navigation-parameters]]
|
1321
|
+
==== Parameters
|
1322
|
+
|
1323
|
+
Find all parameters available for the *Hash Navigation* module.
|
1324
|
+
|
1325
|
+
.Hash Navigation Parameters
|
1326
|
+
[cols="2,2,2,6a", subs=+macros, options="header", width="100%", role="rtable mt-4 mb-5"]
|
1327
|
+
|===
|
1328
|
+
|Name |Type |Default |Description
|
1329
|
+
|
1330
|
+
|`getSlideIndex`
|
1331
|
+
|function(swiper, hash)
|
1332
|
+
|*no default*
|
1333
|
+
|Designed to be used with Virtual slides when it is impossible to find
|
1334
|
+
slide in DOM by hash (e.g. not yet rendered).
|
1335
|
+
|
1336
|
+
|`replaceState`
|
1337
|
+
|boolean
|
1338
|
+
|`false`
|
1339
|
+
|Works in addition to hashnav to replace current url state with the new one
|
1340
|
+
instead of adding it to history.
|
1341
|
+
|
1342
|
+
|`watchState`
|
1343
|
+
|boolean
|
1344
|
+
|`false`
|
1345
|
+
|Set to `true` to enable also navigation through slides (when hashnav is
|
1346
|
+
enabled) by browser history or by setting directly hash on document location.
|
1347
|
+
|
1348
|
+
|===
|
1349
|
+
|
1350
|
+
[role="mt-4"]
|
1351
|
+
[[swiper-modules-hash-navigation-events]]
|
1352
|
+
==== Events
|
1353
|
+
|
1354
|
+
Find below available *Events* for the SwiperJS *Hash Navigation* module.
|
1355
|
+
|
1356
|
+
[role="mt-4"]
|
1357
|
+
[[swiper-modules-hash-navigation-events-hashChange]]
|
1358
|
+
===== hashChange
|
1359
|
+
|
1360
|
+
Event fired on window hash change.
|
1361
|
+
|
1362
|
+
[cols="12a", subs=+macros, options="header", width="100%", role="rtable mt-4 mb-5"]
|
1363
|
+
|===
|
1364
|
+
|Usage
|
1365
|
+
|
1366
|
+
|
|
1367
|
+
[source, js]
|
1368
|
+
----
|
1369
|
+
const swiper = new Swiper('#swiper_id', {
|
1370
|
+
// option settings ...
|
1371
|
+
on: {
|
1372
|
+
hashChange: (swiper) => {
|
1373
|
+
// do something
|
1374
|
+
}
|
1375
|
+
}
|
1376
|
+
});
|
1377
|
+
----
|
1378
|
+
|
1379
|
+
|===
|
1380
|
+
|
1381
|
+
[role="mt-4"]
|
1382
|
+
[[swiper-modules-hash-navigation-events-hashSet]]
|
1383
|
+
===== hashSet
|
1384
|
+
|
1385
|
+
Event fired when swiper updates the hash.
|
1386
|
+
|
1387
|
+
[cols="12a", subs=+macros, options="header", width="100%", role="rtable mt-4 mb-5"]
|
1388
|
+
|===
|
1389
|
+
|Usage
|
1390
|
+
|
1391
|
+
|
|
1392
|
+
[source, js]
|
1393
|
+
----
|
1394
|
+
const swiper = new Swiper('#swiper_id', {
|
1395
|
+
// option settings ...
|
1396
|
+
on: {
|
1397
|
+
hashSet: (swiper) => {
|
1398
|
+
// do something
|
1399
|
+
}
|
1400
|
+
}
|
1401
|
+
});
|
1402
|
+
----
|
1403
|
+
|
1404
|
+
|===
|
1405
|
+
|
1406
|
+
|
1407
|
+
[role="mt-5"]
|
1408
|
+
[[swiper-modules-history-navigation]]
|
1409
|
+
=== History Navigation
|
1410
|
+
|
1411
|
+
The History Navigation module in SwiperJS allows you to integrate Swiper
|
1412
|
+
with *history* of your browser. This means, when you navigate between slides
|
1413
|
+
in your Swiper, the browser's URL will be updated to reflect the current
|
1414
|
+
slide. This is useful for:
|
1415
|
+
|
1416
|
+
Browser back/forward buttons:: Users can navigate through the slides
|
1417
|
+
using their browser's back and forward buttons, providing a familiar and
|
1418
|
+
intuitive user experience.
|
1419
|
+
|
1420
|
+
Bookmarking specific slides::
|
1421
|
+
Users can easily bookmark a particular slide and return to it later.
|
1422
|
+
|
1423
|
+
Sharing specific slides::
|
1424
|
+
Sharing the URL of a specific slide with others allows them to directly
|
1425
|
+
access that slide.
|
1426
|
+
|
1427
|
+
SEO:: Search engines can index *individual slides* and potentially this may
|
1428
|
+
*improve* your website's *search rank*.
|
1429
|
+
|
1430
|
+
[role="mt-4"]
|
1431
|
+
[[swiper-modules-history-navigation-parameters]]
|
1432
|
+
==== Parameters
|
1433
|
+
|
1434
|
+
Find all parameters available for the *History Navigation* module.
|
1435
|
+
|
1436
|
+
.History Navigation Parameters
|
1437
|
+
[cols="2,2,2,6a", subs=+macros, options="header", width="100%", role="rtable mt-4 mb-5"]
|
1438
|
+
|===
|
1439
|
+
|Name |Type |Default |Description \| Example
|
1440
|
+
|
1441
|
+
|`enabled`
|
1442
|
+
|boolean
|
1443
|
+
|`false`
|
1444
|
+
|Enables the History Plugin.
|
1445
|
+
|
1446
|
+
|`keepQuery`
|
1447
|
+
|boolean
|
1448
|
+
|`false`
|
1449
|
+
|Keep query parameters when changing browser url.
|
1450
|
+
|
1451
|
+
|`key`
|
1452
|
+
|string
|
1453
|
+
|_slides_
|
1454
|
+
|URL key for slides.
|
1455
|
+
|
1456
|
+
|`replaceState`
|
1457
|
+
|boolean
|
1458
|
+
|`false`
|
1459
|
+
|Works in addition to hashnav or history to replace current url state
|
1460
|
+
with the new one instead of adding it to history.
|
1461
|
+
|
1462
|
+
|`root`
|
1463
|
+
|string
|
1464
|
+
|empty string
|
1465
|
+
|swiper page root, useful to specify when you use SwiperJS history mode
|
1466
|
+
not on root website page. For example can be `https://my-website.com/` or
|
1467
|
+
`https://my-website.com/subpage/` or `/subpage/`
|
1468
|
+
|
1469
|
+
|===
|
1470
|
+
|
1471
|
+
|
1472
|
+
[role="mt-5"]
|
1473
|
+
[[swiper-modules-keyboard-control]]
|
1474
|
+
=== Keyboard Control
|
1475
|
+
|
1476
|
+
The Keyboard Control module in SwiperJS enables *navigation* through slides
|
1477
|
+
using the keyboard. Here's a breakdown of its key functionalities:
|
1478
|
+
|
1479
|
+
Default Keys::
|
1480
|
+
Typically uses arrow keys (left/right) to navigate between slides.
|
1481
|
+
|
1482
|
+
Customizable::
|
1483
|
+
You can potentially configure it to use other keys if needed.
|
1484
|
+
|
1485
|
+
Viewport Control::
|
1486
|
+
This option allows you to control whether keyboard navigation works only
|
1487
|
+
when the SwiperJS instance is within the viewport. This can be useful to
|
1488
|
+
prevent *accidental navigation* when the swiper is off-screen.
|
1489
|
+
|
1490
|
+
[role="mt-4"]
|
1491
|
+
[[swiper-modules-keyboard-control-parameters]]
|
1492
|
+
==== Parameters
|
1493
|
+
|
1494
|
+
Find all parameters available for the *Keyboard Control* module.
|
1495
|
+
|
1496
|
+
.Keyboard Control Parameters
|
1497
|
+
[cols="3,2,3,4a", subs=+macros, options="header", width="100%", role="rtable mt-4 mb-5"]
|
1498
|
+
|===
|
1499
|
+
|Name |Type |Default |Description \| Example
|
1500
|
+
|
1501
|
+
|`enabled`
|
1502
|
+
|boolean
|
1503
|
+
|`false`
|
1504
|
+
|Set to `true` to enable keyboard control.
|
1505
|
+
|
1506
|
+
|`onlyInViewport`
|
1507
|
+
|boolean
|
1508
|
+
|`true`
|
1509
|
+
|When enabled it will control sliders that are currently in viewport.
|
1510
|
+
|
1511
|
+
|`pageUpDown`
|
1512
|
+
|boolean
|
1513
|
+
|`true`
|
1514
|
+
|When enabled it will enable keyboard navigation by Page Up and Page Down keys.
|
1515
|
+
|===
|
1516
|
+
|
1517
|
+
[role="mt-4"]
|
1518
|
+
[[swiper-modules-keyboard-control-Properties]]
|
1519
|
+
==== Properties
|
1520
|
+
|
1521
|
+
Find below available *Properties* for the SwiperJS *Keyboard Control* module.
|
1522
|
+
|
1523
|
+
.Keyboard Control Properties
|
1524
|
+
[cols="3,3,6a", subs=+macros, options="header", width="100%", role="rtable mt-4 mb-5"]
|
1525
|
+
|===
|
1526
|
+
|Name |Type |Description
|
1527
|
+
|
1528
|
+
|`enabled`
|
1529
|
+
|boolean
|
1530
|
+
|Whether the keyboard control is enabled.
|
1531
|
+
|
1532
|
+
|===
|
1533
|
+
|
1534
|
+
[role="mt-4"]
|
1535
|
+
[[swiper-modules-keyboard-control-methods]]
|
1536
|
+
==== Methods
|
1537
|
+
|
1538
|
+
Find below available *Methods* for the SwiperJS *Keyboard Control* module.
|
1539
|
+
|
1540
|
+
.Keyboard Control Methods
|
1541
|
+
[cols="3,9a", subs=+macros, options="header", width="100%", role="rtable mt-4 mb-5"]
|
1542
|
+
|===
|
1543
|
+
|Method |Description
|
1544
|
+
|
1545
|
+
|`disable`
|
1546
|
+
|Disable keyboard control.
|
1547
|
+
|
1548
|
+
|`enable`
|
1549
|
+
|Enable keyboard control.
|
1550
|
+
|
1551
|
+
|===
|
1552
|
+
|
1553
|
+
[role="mt-4"]
|
1554
|
+
[[swiper-modules-keyboard-control-events]]
|
1555
|
+
==== Events
|
1556
|
+
|
1557
|
+
Find below available *Events* for the SwiperJS *Keyboard Control* module.
|
1558
|
+
|
1559
|
+
[role="mt-4"]
|
1560
|
+
[[swiper-modules-keyboard-control-events-keyPress]]
|
1561
|
+
===== keyPress
|
1562
|
+
|
1563
|
+
Event fired on key press.
|
1564
|
+
|
1565
|
+
[cols="12a", subs=+macros, options="header", width="100%", role="rtable mt-4 mb-5"]
|
1566
|
+
|===
|
1567
|
+
|Usage
|
1568
|
+
|
1569
|
+
|
|
1570
|
+
[source, js]
|
1571
|
+
----
|
1572
|
+
const swiper = new Swiper('#swiper_id', {
|
1573
|
+
// option settings ...
|
1574
|
+
on: {
|
1575
|
+
keyPress: (swiper, keyCode) => {
|
1576
|
+
// do something
|
1577
|
+
}
|
1578
|
+
}
|
1579
|
+
});
|
1580
|
+
----
|
1581
|
+
|
1582
|
+
|===
|
1583
|
+
|
1584
|
+
|
1585
|
+
[role="mt-5"]
|
1586
|
+
[[swiper-modules-lazy-loading]]
|
1587
|
+
=== Lazy Loading
|
1588
|
+
|
1589
|
+
Since version 9 SwiperJSdoesn't have a specific lazy loading API, as it
|
1590
|
+
relies on native browser lazy loading feature. To use lazy loading, we
|
1591
|
+
just need to set `loading="lazy"` on images and add preloader element:
|
1592
|
+
|
1593
|
+
[role="mt-4"]
|
1594
|
+
.Example
|
1595
|
+
[source, html]
|
1596
|
+
----
|
1597
|
+
<div class="swiper">
|
1598
|
+
<div class="swiper-wrapper">
|
1599
|
+
<!-- Lazy image -->
|
1600
|
+
<div class="swiper-slide">
|
1601
|
+
<img src="path/to/picture-1.jpg" loading="lazy" />
|
1602
|
+
<div class="swiper-lazy-preloader"></div>
|
1603
|
+
</div>
|
1604
|
+
<!-- Lazy image with srcset -->
|
1605
|
+
<div class="swiper-slide">
|
1606
|
+
<img
|
1607
|
+
src="path/to/logo-small.png"
|
1608
|
+
srcset="path/to/logo-large.png 2x"
|
1609
|
+
loading="lazy"
|
1610
|
+
/>
|
1611
|
+
<div class="swiper-lazy-preloader"></div>
|
1612
|
+
</div>
|
1613
|
+
</div>
|
1614
|
+
</div>
|
1615
|
+
----
|
1616
|
+
|
1617
|
+
As you see:
|
1618
|
+
|
1619
|
+
* Lazy image must have `loading="lazy"` attribute
|
1620
|
+
* Add animated preloader spinner to slide which will be removed
|
1621
|
+
automatically after image loaded:
|
1622
|
+
|
1623
|
+
[source, html]
|
1624
|
+
----
|
1625
|
+
<div class="swiper-lazy-preloader"></div>
|
1626
|
+
----
|
1627
|
+
|
1628
|
+
Or white one for dark *layout*:
|
1629
|
+
|
1630
|
+
[source, html]
|
1631
|
+
----
|
1632
|
+
<div class="swiper-lazy-preloader swiper-lazy-preloader-white"></div>
|
1633
|
+
----
|
1634
|
+
|
1635
|
+
|
1636
|
+
[role="mt-5"]
|
1637
|
+
[[swiper-modules-manipulation]]
|
1638
|
+
=== Manipulation
|
1639
|
+
|
1640
|
+
The Manipulation module adds useful methods to SwiperJS for manipulating
|
1641
|
+
slides. The module provides methods for dynamically adding, removing, and
|
1642
|
+
rearranging slides within the slider.
|
1643
|
+
|
1644
|
+
[role="mt-4 mb-5"]
|
1645
|
+
[NOTE]
|
1646
|
+
====
|
1647
|
+
It makes sense to use it only with SwiperJS Core version, amd is *not*
|
1648
|
+
intended to be used with SwiperJS Environments like *React* or *Vue*.
|
1649
|
+
====
|
1650
|
+
|
1651
|
+
[role="mt-4"]
|
1652
|
+
[[swiper-modules-manipulation-methods]]
|
1653
|
+
==== Methods
|
1654
|
+
|
1655
|
+
Find below available *Methods* for the SwiperJS *Manipulation* module.
|
1656
|
+
|
1657
|
+
.Manipulation Methods
|
1658
|
+
[cols="4,8a", subs=+macros, options="header", width="100%", role="rtable mt-4 mb-5"]
|
1659
|
+
|===
|
1660
|
+
|Method |Description \| Example
|
1661
|
+
|
1662
|
+
|`addSlide(index, slides)`
|
1663
|
+
|Add new slides to the required index. Slides could be *HTML Element* or
|
1664
|
+
*HTML string* with new slide or *array* with such slides.
|
1665
|
+
|
1666
|
+
[source, js]
|
1667
|
+
----
|
1668
|
+
addSlide(1, '<div class="swiper-slide">Slide 10"</div>')
|
1669
|
+
addSlide(1, [
|
1670
|
+
'<div class="swiper-slide">Slide 10"</div>',
|
1671
|
+
'<div class="swiper-slide">Slide 11"</div>'
|
1672
|
+
]);
|
1673
|
+
----
|
1674
|
+
|
1675
|
+
|`appendSlide(index, slides)`
|
1676
|
+
|Add new slides to the end. Slides could be a *HTML Element* or *HTML string*
|
1677
|
+
with new slide or *array* with such slides.
|
1678
|
+
|
1679
|
+
[source, js]
|
1680
|
+
----
|
1681
|
+
appendSlide('<div class="swiper-slide">Slide 10"</div>')
|
1682
|
+
appendSlide([
|
1683
|
+
'<div class="swiper-slide">Slide 10"</div>',
|
1684
|
+
'<div class="swiper-slide">Slide 11"</div>'
|
1685
|
+
]);
|
1686
|
+
----
|
1687
|
+
|
1688
|
+
|`prependSlide(index, slides)`
|
1689
|
+
|Add new slides to the beginning. Slides could be *HTML Element* or
|
1690
|
+
*HTML string* with new slide or *array* with such slides.
|
1691
|
+
|
1692
|
+
[source, js]
|
1693
|
+
----
|
1694
|
+
prependSlide('<div class="swiper-slide">Slide 0"</div>')
|
1695
|
+
prependSlide([
|
1696
|
+
'<div class="swiper-slide">Slide 1"</div>',
|
1697
|
+
'<div class="swiper-slide">Slide 2"</div>'
|
1698
|
+
]);
|
1699
|
+
----
|
1700
|
+
|
1701
|
+
|`removeAllSlides(index, slides)`
|
1702
|
+
|Remove all slides.
|
1703
|
+
|
1704
|
+
[source, js]
|
1705
|
+
----
|
1706
|
+
removeSlide(0); // remove first slide
|
1707
|
+
removeSlide([0, 1]); // remove first and second slides
|
1708
|
+
removeAllSlides(); // Remove all slides
|
1709
|
+
----
|
1710
|
+
|
1711
|
+
|`removeSlide(index, slides)`
|
1712
|
+
|Remove selected slides. *SlideIndex* could be a number with slide *index*
|
1713
|
+
to remove or *array* with indexes.
|
1714
|
+
|
1715
|
+
[source, js]
|
1716
|
+
----
|
1717
|
+
removeSlide(0); // remove first slide
|
1718
|
+
removeSlide([0, 1]); // remove first and second slides
|
1719
|
+
removeAllSlides(); // Remove all slides
|
1720
|
+
----
|
1721
|
+
|
1722
|
+
|===
|
1723
|
+
|
1724
|
+
|
1725
|
+
[role="mt-5"]
|
1726
|
+
[[swiper-modules-mousewheel-control]]
|
1727
|
+
=== Mousewheel Control
|
1728
|
+
|
1729
|
+
The Mousewheel Control module in SwiperJS enables users to navigate
|
1730
|
+
through the slides of a SwiperJS instance using their mouse wheel. Here's a
|
1731
|
+
breakdown of its key functionalities:
|
1732
|
+
|
1733
|
+
Smooth Scrolling::
|
1734
|
+
Allows for smooth and intuitive navigation through slides by scrolling
|
1735
|
+
the mouse wheel.
|
1736
|
+
|
1737
|
+
Configurable::
|
1738
|
+
Offers options to customize mousewheel behavior, such as:
|
1739
|
+
|
1740
|
+
* releaseOnEdges: Allows page scrolling when the swiper reaches
|
1741
|
+
the beginning or end.
|
1742
|
+
|
1743
|
+
* invert: Inverts the scrolling direction e.g. for scrolling up moves to
|
1744
|
+
the next slide.
|
1745
|
+
|
1746
|
+
Axis Control::
|
1747
|
+
Can be configured to *restrict* mousewheel *scrolling* to a defined
|
1748
|
+
axis, e.g. for only *horizontal* scrolling in horizontal mode.
|
1749
|
+
|
1750
|
+
[role="mt-4"]
|
1751
|
+
[[swiper-modules-mousewheel-control-parameters]]
|
1752
|
+
==== Parameters
|
1753
|
+
|
1754
|
+
Find below available *Parameters* for the SwiperJS *Mousewheel Control* module.
|
1755
|
+
|
1756
|
+
.Mousewheel Control Parameters
|
1757
|
+
[cols="3,2,3,4a", subs=+macros, options="header", width="100%", role="rtable mt-4 mb-5"]
|
1758
|
+
|===
|
1759
|
+
|Name |Type |Default |Description
|
1760
|
+
|
1761
|
+
|`enabled`
|
1762
|
+
|boolean
|
1763
|
+
|`false`
|
1764
|
+
|Set to `true` to enable mousewheel control.
|
1765
|
+
|
1766
|
+
|`eventsTarget`
|
1767
|
+
|string
|
1768
|
+
|_container_
|
1769
|
+
|String with *CSS selector* or *HTML element* of the container accepting
|
1770
|
+
mousewheel events. By default it is swiper.
|
1771
|
+
|
1772
|
+
|`forceToAxis`
|
1773
|
+
|boolean
|
1774
|
+
|`false`
|
1775
|
+
|Set to `true` to force mousewheel swipes to axis. So in horizontal mode
|
1776
|
+
mousewheel will work only with horizontal mousewheel scrolling, and only
|
1777
|
+
with vertical scrolling in vertical mode.
|
1778
|
+
|
1779
|
+
|`invert`
|
1780
|
+
|boolean
|
1781
|
+
|`false`
|
1782
|
+
|Set to `true` to invert sliding direction.
|
1783
|
+
|
1784
|
+
|`noMousewheelClass`
|
1785
|
+
|string
|
1786
|
+
|_swiper-no-mousewheel_
|
1787
|
+
|Scrolling on elements with this class will be ignored.
|
1788
|
+
|
1789
|
+
|`releaseOnEdges`
|
1790
|
+
|boolean
|
1791
|
+
|`false`
|
1792
|
+
|Set to `true` and swiper will release mousewheel event and allow page
|
1793
|
+
scrolling when swiper is on edge positions (in the beginning or in the
|
1794
|
+
end).
|
1795
|
+
|
1796
|
+
|`sensitivity`
|
1797
|
+
|number
|
1798
|
+
|1
|
1799
|
+
|Multiplier of mousewheel data, allows to tweak mouse wheel sensitivity.
|
1800
|
+
|
1801
|
+
|`thresholdDelta`
|
1802
|
+
|null \| number
|
1803
|
+
|null
|
1804
|
+
|Minimum mousewheel scroll delta to trigger swiper slide change.
|
1805
|
+
|
1806
|
+
|`thresholdTime`
|
1807
|
+
|null \| number
|
1808
|
+
|null
|
1809
|
+
|Minimum mousewheel scroll time delta (in ms) to trigger swiper slide change.
|
1810
|
+
|
1811
|
+
|===
|
1812
|
+
|
1813
|
+
[role="mt-4"]
|
1814
|
+
[[swiper-modules-mousewheel-control-properties]]
|
1815
|
+
==== Properties
|
1816
|
+
|
1817
|
+
Find below available *Properties* for the SwiperJS *Keyboard Control* module.
|
1818
|
+
|
1819
|
+
.Mousewheel Control Properties
|
1820
|
+
[cols="3,3,6a", subs=+macros, options="header", width="100%", role="rtable mt-4 mb-5"]
|
1821
|
+
|===
|
1822
|
+
|Name |Type |Description
|
1823
|
+
|
1824
|
+
|`enabled`
|
1825
|
+
|boolean
|
1826
|
+
|Whether the mousewheel control is enabled.
|
1827
|
+
|
1828
|
+
|===
|
1829
|
+
|
1830
|
+
[role="mt-4"]
|
1831
|
+
[[swiper-modules-mousewheel-control-methods]]
|
1832
|
+
==== Methods
|
1833
|
+
|
1834
|
+
Find below available *Methods* for the SwiperJS *Mousewheel Control* module.
|
1835
|
+
|
1836
|
+
.Mousewheel Control Methods
|
1837
|
+
[cols="4,8a", subs=+macros, options="header", width="100%", role="rtable mt-4 mb-5"]
|
1838
|
+
|===
|
1839
|
+
|Method |Description
|
1840
|
+
|
1841
|
+
|`disable`
|
1842
|
+
|Disable mousewheel control.
|
1843
|
+
|
1844
|
+
|`enable`
|
1845
|
+
|Enable mousewheel control.
|
1846
|
+
|
1847
|
+
|===
|
1848
|
+
|
1849
|
+
[role="mt-4"]
|
1850
|
+
[[swiper-modules-mousewheel-control-events]]
|
1851
|
+
==== Events
|
1852
|
+
|
1853
|
+
Find below available *Events* for the SwiperJS *Mousewheel Control* module.
|
1854
|
+
|
1855
|
+
[role="mt-4"]
|
1856
|
+
[[swiper-modules-mousewheel-control-events-scroll]]
|
1857
|
+
===== scroll
|
1858
|
+
|
1859
|
+
Event fired on mousewheel scroll.
|
1860
|
+
|
1861
|
+
[cols="12a", subs=+macros, options="header", width="100%", role="rtable mt-4 mb-5"]
|
1862
|
+
|===
|
1863
|
+
|Usage
|
1864
|
+
|
1865
|
+
|
|
1866
|
+
[source, js]
|
1867
|
+
----
|
1868
|
+
const swiper = new Swiper('#swiper_id', {
|
1869
|
+
// option settings ...
|
1870
|
+
on: {
|
1871
|
+
scroll: (swiper, event) => {
|
1872
|
+
// do something
|
1873
|
+
}
|
1874
|
+
}
|
1875
|
+
});
|
1876
|
+
----
|
1877
|
+
|
1878
|
+
|===
|
1879
|
+
|
1880
|
+
|
1881
|
+
[role="mt-5"]
|
1882
|
+
[[swiper-modules-navigation]]
|
1883
|
+
=== Navigation
|
1884
|
+
|
1885
|
+
In SwiperJS, the Navigation module provides a way to control the slider's
|
1886
|
+
movement using dedicated "next" and "previous" buttons.
|
1887
|
+
|
1888
|
+
Customizable Buttons::
|
1889
|
+
You can use your own HTML elements (like buttons or icons) as navigation
|
1890
|
+
controls.
|
1891
|
+
|
1892
|
+
Flexibility::
|
1893
|
+
The module offers options to customize the appearance and behavior of
|
1894
|
+
the navigation buttons.
|
1895
|
+
|
1896
|
+
|
1897
|
+
[role="mt-5"]
|
1898
|
+
[[swiper-modules-navigation-parameters]]
|
1899
|
+
==== Parameters
|
1900
|
+
|
1901
|
+
Find all parameters available for the *Navigation* module.
|
1902
|
+
|
1903
|
+
.Navigation Parameters
|
1904
|
+
// [cols="3,2,3,4a", subs=+macros, options="header", width="100%", role="rtable mt-4 mb-5"]
|
1905
|
+
[cols=",,,", subs=+macros, options="header", width="100%", role="rtable mt-4 mb-5"]
|
1906
|
+
|===
|
1907
|
+
|Name |Type |Default |Description
|
1908
|
+
|
1909
|
+
|`disabledClass`
|
1910
|
+
|string
|
1911
|
+
|_swiper-button-disabled_
|
1912
|
+
|*CSS class name* added to navigation button when it becomes disabled.
|
1913
|
+
|
1914
|
+
|`enabled`
|
1915
|
+
|boolean
|
1916
|
+
|*no default*
|
1917
|
+
|Boolean property to use with breakpoints to *enable/disable* navigation
|
1918
|
+
on certain *breakpoints*
|
1919
|
+
|
1920
|
+
|`hiddenClass`
|
1921
|
+
|string
|
1922
|
+
|_swiper-button-hidden_
|
1923
|
+
|*CSS class name* added to *navigation button* when it becomes *hidden*.
|
1924
|
+
|
1925
|
+
|`hideOnClick`
|
1926
|
+
|boolean
|
1927
|
+
|`false`
|
1928
|
+
|*Toggle* navigation *button visibility* after *click* on Slider's container.
|
1929
|
+
|
1930
|
+
|`lockClass`
|
1931
|
+
|string
|
1932
|
+
|swiper-button-lock
|
1933
|
+
|*CSS class name* added to *navigation button* when it is *disabled*.
|
1934
|
+
|
1935
|
+
|`navigationDisabledClass`
|
1936
|
+
|string
|
1937
|
+
|_swiper-navigation-disabled_
|
1938
|
+
|*CSS class name* added *on swiper container* when navigation is *disabled*
|
1939
|
+
by *breakpoint*
|
1940
|
+
|
1941
|
+
|`nextEl`
|
1942
|
+
|any
|
1943
|
+
|null
|
1944
|
+
|String with *CSS selector* or *HTML element* of the element that will
|
1945
|
+
work like *next button* after click on it.
|
1946
|
+
|
1947
|
+
|`prevEl`
|
1948
|
+
|any
|
1949
|
+
|null
|
1950
|
+
|String with *CSS selector* or *HTML element* of the element that will
|
1951
|
+
work like *prev button* after click on it.
|
1952
|
+
|===
|
1953
|
+
|
1954
|
+
[role="mt-4"]
|
1955
|
+
[[swiper-modules-navigation-properties]]
|
1956
|
+
==== Properties
|
1957
|
+
|
1958
|
+
Find below available *Properties* for the SwiperJS *Navigation* module.
|
1959
|
+
|
1960
|
+
.Navigation Properties
|
1961
|
+
[cols="3,9a", subs=+macros, options="header", width="100%", role="rtable mt-4 mb-5" mb-5]
|
1962
|
+
|===
|
1963
|
+
|Name |Description \| Example
|
1964
|
+
|
1965
|
+
|`nextEl`
|
1966
|
+
|HTMLElement of *next* navigation button.
|
1967
|
+
|
1968
|
+
|`prevEl`
|
1969
|
+
|HTMLElement of *previous* navigation button
|
1970
|
+
|
1971
|
+
|===
|
1972
|
+
|
1973
|
+
[role="mt-4"]
|
1974
|
+
[[swiper-modules-navigation-methods]]
|
1975
|
+
==== Methods
|
1976
|
+
|
1977
|
+
Find below available *Methods* for the SwiperJS *Navigation* module.
|
1978
|
+
|
1979
|
+
.Navigation Methods
|
1980
|
+
[cols="3,9a", subs=+macros, options="header", width="100%", role="rtable mt-4 mb-5" mb-5]
|
1981
|
+
|===
|
1982
|
+
|Name |Description
|
1983
|
+
|
1984
|
+
|`destroy()`
|
1985
|
+
|Destroy navigation.
|
1986
|
+
|
1987
|
+
|`init()`
|
1988
|
+
|Initialize navigation.
|
1989
|
+
|
1990
|
+
|`update()`
|
1991
|
+
|Update navigation buttons state (enabled/disabled).
|
1992
|
+
|
1993
|
+
|===
|
1994
|
+
|
1995
|
+
[role="mt-4"]
|
1996
|
+
[[swiper-modules-navigation-events]]
|
1997
|
+
==== Events
|
1998
|
+
|
1999
|
+
Find below available Events for the SwiperJS *Navigation* module.
|
2000
|
+
|
2001
|
+
[role="mt-4"]
|
2002
|
+
[[swiper-modules-navigation-events-navigationHide]]
|
2003
|
+
===== navigationHide
|
2004
|
+
|
2005
|
+
Event will be fired on *navigation hide*
|
2006
|
+
|
2007
|
+
[cols="12a", subs=+macros, options="header", width="100%", role="rtable mt-4 mb-5"]
|
2008
|
+
|===
|
2009
|
+
|Usage
|
2010
|
+
|
2011
|
+
|
|
2012
|
+
[source, js]
|
2013
|
+
----
|
2014
|
+
const swiper = new Swiper('#swiper_id', {
|
2015
|
+
// option settings ...
|
2016
|
+
on: {
|
2017
|
+
navigationHide: (swiper) => {
|
2018
|
+
// do something
|
2019
|
+
}
|
2020
|
+
}
|
2021
|
+
});
|
2022
|
+
----
|
2023
|
+
|
2024
|
+
|===
|
2025
|
+
|
2026
|
+
[role="mt-4"]
|
2027
|
+
[[swiper-modules-navigation-events-navigationNext]]
|
2028
|
+
===== navigationNext
|
2029
|
+
|
2030
|
+
Event will be fired on *click* the navigation *next button*.
|
2031
|
+
|
2032
|
+
[cols="12a", subs=+macros, options="header", width="100%", role="rtable mt-4 mb-5"]
|
2033
|
+
|===
|
2034
|
+
|Usage
|
2035
|
+
|
2036
|
+
|
|
2037
|
+
[source, js]
|
2038
|
+
----
|
2039
|
+
const swiper = new Swiper('#swiper_id', {
|
2040
|
+
// option settings ...
|
2041
|
+
on: {
|
2042
|
+
navigationNext: (swiper) => {
|
2043
|
+
// do something
|
2044
|
+
}
|
2045
|
+
}
|
2046
|
+
});
|
2047
|
+
----
|
2048
|
+
|
2049
|
+
|===
|
2050
|
+
|
2051
|
+
[role="mt-4"]
|
2052
|
+
[[swiper-modules-navigation-events-navigationPrev]]
|
2053
|
+
===== navigationPrev
|
2054
|
+
|
2055
|
+
Event will be fired on *click* the navigation *prev button*.
|
2056
|
+
|
2057
|
+
[cols="12a", subs=+macros, options="header", width="100%", role="rtable mt-4 mb-5"]
|
2058
|
+
|===
|
2059
|
+
|Usage
|
2060
|
+
|
2061
|
+
|
|
2062
|
+
[source, js]
|
2063
|
+
----
|
2064
|
+
const swiper = new Swiper('#swiper_id', {
|
2065
|
+
// option settings ...
|
2066
|
+
on: {
|
2067
|
+
navigationPrev: (swiper) => {
|
2068
|
+
// do something
|
2069
|
+
}
|
2070
|
+
}
|
2071
|
+
});
|
2072
|
+
----
|
2073
|
+
|
2074
|
+
|===
|
2075
|
+
|
2076
|
+
[role="mt-4"]
|
2077
|
+
[[swiper-modules-navigation-events-navigationShow]]
|
2078
|
+
===== navigationShow
|
2079
|
+
|
2080
|
+
Event will be fired on *navigation show*.
|
2081
|
+
|
2082
|
+
[cols="12a", subs=+macros, options="header", width="100%", role="rtable mt-4 mb-5"]
|
2083
|
+
|===
|
2084
|
+
|Usage
|
2085
|
+
|
2086
|
+
|
|
2087
|
+
[source, js]
|
2088
|
+
----
|
2089
|
+
const swiper = new Swiper('#swiper_id', {
|
2090
|
+
// option settings ...
|
2091
|
+
on: {
|
2092
|
+
navigationShow: (swiper) => {
|
2093
|
+
// do something
|
2094
|
+
}
|
2095
|
+
}
|
2096
|
+
});
|
2097
|
+
----
|
2098
|
+
|
2099
|
+
|===
|
2100
|
+
|
2101
|
+
[role="mt-4"]
|
2102
|
+
[[swiper-modules-navigation-css-properties]]
|
2103
|
+
==== CSS Properties
|
2104
|
+
|
2105
|
+
Find below available *CSS Properties* for the SwiperJS *Navigation* module.
|
2106
|
+
|
2107
|
+
[source, css]
|
2108
|
+
----
|
2109
|
+
{
|
2110
|
+
--swiper-navigation-size: 44px;
|
2111
|
+
--swiper-navigation-top-offset: 50%;
|
2112
|
+
--swiper-navigation-sides-offset: 10px;
|
2113
|
+
--swiper-navigation-color: var(--swiper-theme-color);
|
2114
|
+
}
|
2115
|
+
----
|
2116
|
+
|
2117
|
+
|
2118
|
+
[role="mt-5"]
|
2119
|
+
[[swiper-modules-pagination]]
|
2120
|
+
=== Pagination
|
2121
|
+
|
2122
|
+
The Pagination module in SwiperJS is a powerful tool that allows you to add
|
2123
|
+
visual indicators (like buttons) to a SwiperJS slide. The navigation elements
|
2124
|
+
make it clear to users how many slides there are and which slide they are
|
2125
|
+
currently viewing. Here's a breakdown of its key functionalities:
|
2126
|
+
|
2127
|
+
Active State::
|
2128
|
+
The indicator corresponding to the currently active slide is visually
|
2129
|
+
highlighted to provide immediate feedback to the user.
|
2130
|
+
|
2131
|
+
User Interaction::
|
2132
|
+
In many cases, the pagination indicators are clickable. Clicking on an
|
2133
|
+
indicator will directly navigate the slider to the corresponding slide.
|
2134
|
+
|
2135
|
+
Visual Indicators::
|
2136
|
+
The module generates a set of visual indicators (often small dots or numbers)
|
2137
|
+
that represent each slide in your slider.
|
2138
|
+
|
2139
|
+
[role="mt-4"]
|
2140
|
+
[[swiper-modules-pagination-parameters]]
|
2141
|
+
==== Parameters
|
2142
|
+
|
2143
|
+
Find all parameters available for the *Pagination* module.
|
2144
|
+
|
2145
|
+
.Pagination Parameters
|
2146
|
+
// [cols="2,2,2,6a", subs=+macros, options="header", width="100%", role="rtable mt-4 mb-5"]
|
2147
|
+
[cols=",,,", subs=+macros, options="header", width="100%", role="rtable mt-4 mb-5"]
|
2148
|
+
|===
|
2149
|
+
|Name |Type |Default |Description \| Example
|
2150
|
+
|
2151
|
+
|`bulletActiveClass`
|
2152
|
+
|string
|
2153
|
+
|_swiper-pagination-bullet-active_
|
2154
|
+
|*CSS class name* of the *active* pagination *bullet*.
|
2155
|
+
|
2156
|
+
|`bulletClass`
|
2157
|
+
|string
|
2158
|
+
|_swiper-pagination-bullet_
|
2159
|
+
|*CSS class name* of the pagination *bullet*.
|
2160
|
+
|
2161
|
+
|`bulletElement`
|
2162
|
+
|string
|
2163
|
+
|_span_
|
2164
|
+
|Defines which HTML tag will be used to represent single pagination bullet.
|
2165
|
+
Only for pagination type of _bullets_ .
|
2166
|
+
|
2167
|
+
|`clickable`
|
2168
|
+
|boolean
|
2169
|
+
|`false`
|
2170
|
+
|If `true` then clicking on pagination button will cause transition
|
2171
|
+
to appropriate slide. Only for bullets pagination type.
|
2172
|
+
|
2173
|
+
|`clickableClass`
|
2174
|
+
|string
|
2175
|
+
|_swiper-pagination-clickable_
|
2176
|
+
|*CSS class name* set to pagination if its *clickable*.
|
2177
|
+
|
2178
|
+
|`currentClass`
|
2179
|
+
|string
|
2180
|
+
|_swiper-pagination-current_
|
2181
|
+
|*CSS class name* of the element with currently active index in
|
2182
|
+
*fraction* pagination.
|
2183
|
+
|
2184
|
+
|`dynamicBullets`
|
2185
|
+
|boolean
|
2186
|
+
|`false`
|
2187
|
+
|Good to enable if you use bullets pagination with a lot of slides.
|
2188
|
+
So it will keep only few bullets visible at the same time.
|
2189
|
+
|
2190
|
+
|`dynamicMainBullets`
|
2191
|
+
|number
|
2192
|
+
|1
|
2193
|
+
|The number of main bullets visible when `dynamicBullets` is enabled.
|
2194
|
+
|
2195
|
+
|`el`
|
2196
|
+
|any
|
2197
|
+
|null
|
2198
|
+
|String with CSS selector or HTML element of the container with pagination.
|
2199
|
+
|
2200
|
+
|`enabled`
|
2201
|
+
|boolean
|
2202
|
+
|*no default*
|
2203
|
+
|Boolean property to use with breakpoints to enable/disable pagination
|
2204
|
+
on certain breakpoints.
|
2205
|
+
|
2206
|
+
|`formatFractionCurrent`
|
2207
|
+
|function(number)
|
2208
|
+
|*no default*
|
2209
|
+
|Format fraction pagination current number. Function receives current
|
2210
|
+
number, and you need to return formatted value.
|
2211
|
+
|
2212
|
+
|`formatFractionTotal`
|
2213
|
+
|function(number)
|
2214
|
+
|*no default*
|
2215
|
+
|Format fraction pagination total number. Function receives total number,
|
2216
|
+
and you need to return formatted value.
|
2217
|
+
|
2218
|
+
|`hiddenClass`
|
2219
|
+
|string
|
2220
|
+
|_swiper-pagination-hidden_
|
2221
|
+
|*CSS class name* of pagination when it becomes inactive.
|
2222
|
+
|
2223
|
+
|`hideOnClick`
|
2224
|
+
|boolean
|
2225
|
+
|`true`
|
2226
|
+
|Toggle (hide/show) pagination container visibility after click on
|
2227
|
+
slider's container.
|
2228
|
+
|
2229
|
+
|`horizontalClass`
|
2230
|
+
|string
|
2231
|
+
|_swiper-pagination-horizontal_
|
2232
|
+
|CSS class name set to pagination in horizontal Swiper.
|
2233
|
+
|
2234
|
+
|`lockClass`
|
2235
|
+
|string
|
2236
|
+
|_swiper-pagination-lock_
|
2237
|
+
|*CSS class name* set to pagination when it is disabled.
|
2238
|
+
|
2239
|
+
|`modifierClass`
|
2240
|
+
|string
|
2241
|
+
|_swiper-pagination-_
|
2242
|
+
|The *beginning* of the *modifier CSS class name* that will be added
|
2243
|
+
to pagination depending on parameters.
|
2244
|
+
|
2245
|
+
|`paginationDisabledClass`
|
2246
|
+
|string
|
2247
|
+
|_swiper-pagination-disabled_
|
2248
|
+
|*CSS class name* added on swiper container and pagination element
|
2249
|
+
when pagination is disabled by breakpoint.
|
2250
|
+
|
2251
|
+
|`progressbarFillClass`
|
2252
|
+
|string
|
2253
|
+
|_swiper-pagination-progressbar-fill_
|
2254
|
+
|*CSS class name* of pagination progressbar fill element.
|
2255
|
+
|
2256
|
+
|`progressbarOpposite`
|
2257
|
+
|boolean
|
2258
|
+
|`false`
|
2259
|
+
|Makes pagination progressbar opposite to Swiper's `direction`
|
2260
|
+
parameter, means vertical progressbar for horizontal swiper direction
|
2261
|
+
and horizontal progressbar for vertical swiper direction
|
2262
|
+
|
2263
|
+
|`progressbarOppositeClass`
|
2264
|
+
|string
|
2265
|
+
|_swiper-pagination-progressbar-opposite_
|
2266
|
+
|*CSS class name* of pagination progressbar opposite
|
2267
|
+
|
2268
|
+
|`renderBullet`
|
2269
|
+
|function(args)
|
2270
|
+
|*no default*
|
2271
|
+
a|This parameter allows totally customize pagination bullets, you need to
|
2272
|
+
pass here a function that accepts `index` number of pagination bullet
|
2273
|
+
and required element class name (`className`). Only for `'bullets'`
|
2274
|
+
pagination type.
|
2275
|
+
|
2276
|
+
[source, js]
|
2277
|
+
----
|
2278
|
+
const swiper = new Swiper('#swiper_id', {
|
2279
|
+
//...
|
2280
|
+
renderBullet: function (index, className) {
|
2281
|
+
return '<span class="' + className + '">' + (index + 1) + '</span>';
|
2282
|
+
}
|
2283
|
+
});
|
2284
|
+
----
|
2285
|
+
|
2286
|
+
|`renderCustom`
|
2287
|
+
|function(args)
|
2288
|
+
|*no default*
|
2289
|
+
a|This parameter is required for _custom_ pagination type where you
|
2290
|
+
have to specify how it should be rendered.
|
2291
|
+
|
2292
|
+
[source, js]
|
2293
|
+
----
|
2294
|
+
const swiper = new Swiper('#swiper_id', {
|
2295
|
+
//...
|
2296
|
+
renderCustom: function (swiper, current, total) {
|
2297
|
+
return current + ' of ' + total;
|
2298
|
+
}
|
2299
|
+
});
|
2300
|
+
----
|
2301
|
+
|
2302
|
+
|`renderFraction`
|
2303
|
+
|function(args)
|
2304
|
+
|*no default*
|
2305
|
+
a|This parameter allows to customize *fraction* pagination html. Only for
|
2306
|
+
_fraction_ pagination type.
|
2307
|
+
|
2308
|
+
[source, js]
|
2309
|
+
----
|
2310
|
+
const swiper = new Swiper('#swiper_id', {
|
2311
|
+
//...
|
2312
|
+
renderFraction: function (currentClass, totalClass) {
|
2313
|
+
return '<span class="' + currentClass + '"></span>' +
|
2314
|
+
' of ' +
|
2315
|
+
'<span class="' + totalClass + '"></span>';
|
2316
|
+
}
|
2317
|
+
});
|
2318
|
+
----
|
2319
|
+
|
2320
|
+
|`renderProgressbar`
|
2321
|
+
|function(args)
|
2322
|
+
|*no default*
|
2323
|
+
a|This parameter allows to customize "progress" pagination. Only for
|
2324
|
+
_progress_ pagination type
|
2325
|
+
|
2326
|
+
[source, js]
|
2327
|
+
----
|
2328
|
+
const swiper = new Swiper('#swiper_id', {
|
2329
|
+
//...
|
2330
|
+
renderProgressbar: function (progressbarFillClass) {
|
2331
|
+
return '<span class="' + progressbarFillClass + '"></span>';
|
2332
|
+
}
|
2333
|
+
});
|
2334
|
+
----
|
2335
|
+
|
2336
|
+
|`totalClass`
|
2337
|
+
|string
|
2338
|
+
|_swiper-pagination-total_
|
2339
|
+
|*CSS class name* of the element with total number of *snaps* in
|
2340
|
+
*fraction* pagination.
|
2341
|
+
|
2342
|
+
|`type`
|
2343
|
+
|string
|
2344
|
+
|_bullets_
|
2345
|
+
|String with type of pagination. +
|
2346
|
+
Can be _bullets_, _fraction_ , _progressbar_ or _custom_.
|
2347
|
+
|
2348
|
+
|`verticalClass`
|
2349
|
+
|string
|
2350
|
+
|_swiper-pagination-vertical_
|
2351
|
+
|*CSS class name* set to pagination in vertical Swiper.
|
2352
|
+
|
2353
|
+
|===
|
2354
|
+
|
2355
|
+
[role="mt-4"]
|
2356
|
+
[[swiper-modules-pagination-properties]]
|
2357
|
+
==== Properties
|
2358
|
+
|
2359
|
+
Find below available *Properties* for the SwiperJS *Pagination* module.
|
2360
|
+
|
2361
|
+
.Pagination Properties
|
2362
|
+
[cols="3,9a", subs=+macros, options="header", width="100%", role="rtable mt-4 mb-5" mb-5]
|
2363
|
+
|===
|
2364
|
+
|Property |Description \| Example
|
2365
|
+
|
2366
|
+
|`bullets`
|
2367
|
+
|Array of pagination bullets HTML elements. To get specific slide
|
2368
|
+
HTMLElement use `swiper.pagination.bullets[1]`.
|
2369
|
+
|
2370
|
+
|`el`
|
2371
|
+
|HTMLElement of pagination container element.
|
2372
|
+
|
2373
|
+
|===
|
2374
|
+
|
2375
|
+
[role="mt-4"]
|
2376
|
+
[[swiper-modules-pagination-methods]]
|
2377
|
+
==== Methods
|
2378
|
+
|
2379
|
+
Find below available *Methods* for the SwiperJS *Pagination* module.
|
2380
|
+
|
2381
|
+
.Pagination Methods
|
2382
|
+
[cols="3,9a", subs=+macros, options="header", width="100%", role="rtable mt-4 mb-5" mb-5]
|
2383
|
+
|===
|
2384
|
+
|Method |Description
|
2385
|
+
|
2386
|
+
|`destroy`
|
2387
|
+
|Destroy pagination.
|
2388
|
+
|
2389
|
+
|`init`
|
2390
|
+
|Initialize pagination.
|
2391
|
+
|
2392
|
+
|`render`
|
2393
|
+
|Render pagination layout.
|
2394
|
+
|
2395
|
+
|`update`
|
2396
|
+
|Update pagination state of *enabled* \| *disabled* \| *active*.
|
2397
|
+
|===
|
2398
|
+
|
2399
|
+
[role="mt-4"]
|
2400
|
+
[[swiper-modules-pagination-events]]
|
2401
|
+
==== Events
|
2402
|
+
|
2403
|
+
Find below available *Events* for the SwiperJS *Pagination* module.
|
2404
|
+
|
2405
|
+
[role="mt-4"]
|
2406
|
+
[[swiper-modules-pagination-events-paginationHide]]
|
2407
|
+
===== paginationHide
|
2408
|
+
|
2409
|
+
Event will be fired on pagination hide.
|
2410
|
+
|
2411
|
+
[cols="12a", subs=+macros, options="header", width="100%", role="rtable mt-4 mb-5"]
|
2412
|
+
|===
|
2413
|
+
|Usage
|
2414
|
+
|
2415
|
+
|
|
2416
|
+
[source, js]
|
2417
|
+
----
|
2418
|
+
const swiper = new Swiper('#swiper_id', {
|
2419
|
+
// option settings ...
|
2420
|
+
on: {
|
2421
|
+
paginationHide: (swiper) => {
|
2422
|
+
// do something
|
2423
|
+
}
|
2424
|
+
}
|
2425
|
+
});
|
2426
|
+
----
|
2427
|
+
|
2428
|
+
|===
|
2429
|
+
|
2430
|
+
[role="mt-4"]
|
2431
|
+
[[swiper-modules-pagination-events-paginationRender]]
|
2432
|
+
===== paginationRender
|
2433
|
+
|
2434
|
+
Event will be fired after pagination rendered.
|
2435
|
+
|
2436
|
+
[cols="12a", subs=+macros, options="header", width="100%", role="rtable mt-4 mb-5"]
|
2437
|
+
|===
|
2438
|
+
|Usage
|
2439
|
+
|
2440
|
+
|
|
2441
|
+
[source, js]
|
2442
|
+
----
|
2443
|
+
const swiper = new Swiper('#swiper_id', {
|
2444
|
+
// option settings ...
|
2445
|
+
on: {
|
2446
|
+
paginationRender: (swiper) => {
|
2447
|
+
// do something
|
2448
|
+
}
|
2449
|
+
}
|
2450
|
+
});
|
2451
|
+
----
|
2452
|
+
|
2453
|
+
|===
|
2454
|
+
|
2455
|
+
[role="mt-4"]
|
2456
|
+
[[swiper-modules-pagination-events-paginationShow]]
|
2457
|
+
===== paginationShow
|
2458
|
+
|
2459
|
+
Event will be fired when pagination is *shown*.
|
2460
|
+
|
2461
|
+
[NOTE]
|
2462
|
+
====
|
2463
|
+
Receives *paginationEl* event as an *argument*.
|
2464
|
+
====
|
2465
|
+
|
2466
|
+
[cols="12a", subs=+macros, options="header", width="100%", role="rtable mt-4 mb-5"]
|
2467
|
+
|===
|
2468
|
+
|Usage
|
2469
|
+
|
2470
|
+
|
|
2471
|
+
[source, js]
|
2472
|
+
----
|
2473
|
+
const swiper = new Swiper('#swiper_id', {
|
2474
|
+
// option settings ...
|
2475
|
+
on: {
|
2476
|
+
paginationShow: (swiper, paginationEl) => {
|
2477
|
+
// do something
|
2478
|
+
}
|
2479
|
+
}
|
2480
|
+
});
|
2481
|
+
----
|
2482
|
+
|
2483
|
+
|===
|
2484
|
+
|
2485
|
+
[role="mt-4"]
|
2486
|
+
[[swiper-modules-pagination-events-paginationUpdate]]
|
2487
|
+
===== paginationUpdate
|
2488
|
+
|
2489
|
+
Event will be fired when pagination updated
|
2490
|
+
|
2491
|
+
[NOTE]
|
2492
|
+
====
|
2493
|
+
Receives *paginationEl* event as an *argument*.
|
2494
|
+
====
|
2495
|
+
|
2496
|
+
[cols="12a", subs=+macros, options="header", width="100%", role="rtable mt-4 mb-5"]
|
2497
|
+
|===
|
2498
|
+
|Usage
|
2499
|
+
|
2500
|
+
|
|
2501
|
+
[source, js]
|
2502
|
+
----
|
2503
|
+
const swiper = new Swiper('#swiper_id', {
|
2504
|
+
// option settings ...
|
2505
|
+
on: {
|
2506
|
+
paginationUpdate: (swiper, paginationEl) => {
|
2507
|
+
// do something
|
2508
|
+
}
|
2509
|
+
}
|
2510
|
+
});
|
2511
|
+
----
|
2512
|
+
|
2513
|
+
|===
|
2514
|
+
|
2515
|
+
[role="mt-4"]
|
2516
|
+
[[swiper-modules-pagination-css-properties]]
|
2517
|
+
==== CSS Properties
|
2518
|
+
|
2519
|
+
Find below available *CSS Properties* for the SwiperJS *Pagination* module.
|
2520
|
+
|
2521
|
+
[source, css]
|
2522
|
+
----
|
2523
|
+
{
|
2524
|
+
--swiper-pagination-color: var(--swiper-theme-color);
|
2525
|
+
--swiper-pagination-left: auto;
|
2526
|
+
--swiper-pagination-right: 8px;
|
2527
|
+
--swiper-pagination-bottom: 8px;
|
2528
|
+
--swiper-pagination-top: auto;
|
2529
|
+
--swiper-pagination-fraction-color: inherit;
|
2530
|
+
--swiper-pagination-progressbar-bg-color: rgba(0, 0, 0, 0.25);
|
2531
|
+
--swiper-pagination-progressbar-size: 4px;
|
2532
|
+
--swiper-pagination-bullet-size: 8px;
|
2533
|
+
--swiper-pagination-bullet-width: 8px;
|
2534
|
+
--swiper-pagination-bullet-height: 8px;
|
2535
|
+
--swiper-pagination-bullet-inactive-color: #000;
|
2536
|
+
--swiper-pagination-bullet-inactive-opacity: 0.2;
|
2537
|
+
--swiper-pagination-bullet-opacity: 1;
|
2538
|
+
--swiper-pagination-bullet-horizontal-gap: 4px;
|
2539
|
+
--swiper-pagination-bullet-vertical-gap: 6px;
|
2540
|
+
}
|
2541
|
+
----
|
2542
|
+
|
2543
|
+
|
2544
|
+
[role="mt-5"]
|
2545
|
+
[[swiper-modules-parallax]]
|
2546
|
+
=== Parallax
|
2547
|
+
|
2548
|
+
The SwiperJS parallax module supports parallax transition effects for
|
2549
|
+
swiper/slides nested elements. There are two types of parallax elements
|
2550
|
+
supported:
|
2551
|
+
|
2552
|
+
* Direct child elements of `swiper`. Parallax effect for such elements
|
2553
|
+
will depend on total slider progress. Useful for parallax backgrounds.
|
2554
|
+
|
2555
|
+
* Slides child elements. Parallax effect for such elements will depend
|
2556
|
+
on slide progress
|
2557
|
+
|
2558
|
+
To enable parallax effects you need to init SwiperJS instance with passed
|
2559
|
+
`parallax: true` parameter and add one of the following (or mix)
|
2560
|
+
attributes to required elements:
|
2561
|
+
|
2562
|
+
* `data-swiper-parallax`, enable transform-translate parallax transition.
|
2563
|
+
This attribute may accept:
|
2564
|
+
|
2565
|
+
** `number`, value in px (as for title, subtitle in example above) to
|
2566
|
+
move element depending on progress. In this case such element will be
|
2567
|
+
moved on ± this value in px depending on slide position (next or
|
2568
|
+
previous)
|
2569
|
+
|
2570
|
+
** `percentage`, (as for "parallax-bg") to move element depending on
|
2571
|
+
progress and on its size. In this case such element will be moved
|
2572
|
+
on ± this percentage of its size (width in horizontal direction,
|
2573
|
+
and height in vertical direction) depending on slide position
|
2574
|
+
(next or previous). So if element has 400px width and you specified
|
2575
|
+
data-swiper-parallax="50%" then it will be moved on ± 200px
|
2576
|
+
|
2577
|
+
* `data-swiper-parallax-x`, same but for x-axis direction
|
2578
|
+
* `data-swiper-parallax-y`, same but for y-axis direction
|
2579
|
+
* `data-swiper-parallax-scale`, scale ratio of the parallax element
|
2580
|
+
when it is in "inactive" (not on active slide) state
|
2581
|
+
* `data-swiper-parallax-opacity`, opacity of the parallax element
|
2582
|
+
when it is in "inactive" (not on active slide) state
|
2583
|
+
* `data-swiper-parallax-duration`, custom transition duration for
|
2584
|
+
parallax elements
|
2585
|
+
|
2586
|
+
[role="mt-4"]
|
2587
|
+
.Example
|
2588
|
+
[source, html]
|
2589
|
+
----
|
2590
|
+
<div class="swiper">
|
2591
|
+
<!-- Parallax background element -->
|
2592
|
+
<div
|
2593
|
+
class="parallax-bg"
|
2594
|
+
style="background-image:url(path/to/image.jpg)"
|
2595
|
+
data-swiper-parallax="-23%"
|
2596
|
+
></div>
|
2597
|
+
<div class="swiper-wrapper">
|
2598
|
+
<div class="swiper-slide">
|
2599
|
+
<!-- Each slide has parallax title -->
|
2600
|
+
<div class="title" data-swiper-parallax="-100">Slide 1</div>
|
2601
|
+
<!-- Parallax subtitle -->
|
2602
|
+
<div class="subtitle" data-swiper-parallax="-200">Subtitle</div>
|
2603
|
+
<!-- And parallax text with custom transition duration -->
|
2604
|
+
<div
|
2605
|
+
class="text"
|
2606
|
+
data-swiper-parallax="-300"
|
2607
|
+
data-swiper-parallax-duration="600"
|
2608
|
+
>
|
2609
|
+
<p>Lorem ipsum dolor sit amet, ...</p>
|
2610
|
+
</div>
|
2611
|
+
<!-- Opacity parallax -->
|
2612
|
+
<div data-swiper-parallax-opacity="0.5">I will change opacity</div>
|
2613
|
+
<!-- Scale parallax -->
|
2614
|
+
<div data-swiper-parallax-scale="0.15">I will change scale</div>
|
2615
|
+
</div>
|
2616
|
+
...
|
2617
|
+
</div>
|
2618
|
+
</div>
|
2619
|
+
----
|
2620
|
+
|
2621
|
+
[role="mt-4"]
|
2622
|
+
[[swiper-modules-parallax-parameters]]
|
2623
|
+
==== Parameters
|
2624
|
+
|
2625
|
+
Find all parameters available for the *Parallax* module.
|
2626
|
+
|
2627
|
+
.Parallax Parameters
|
2628
|
+
[cols="3,2,3,4a", subs=+macros, options="header", width="100%", role="rtable mt-4 mb-5"]
|
2629
|
+
|===
|
2630
|
+
|Name |Type |Default |Description
|
2631
|
+
|
2632
|
+
|`enabled`
|
2633
|
+
|boolean
|
2634
|
+
|`false`
|
2635
|
+
|Enable, if you want to use *parallaxed* elements inside of slider.
|
2636
|
+
|===
|
2637
|
+
|
2638
|
+
|
2639
|
+
[role="mt-5"]
|
2640
|
+
[[swiper-modules-scrollbar]]
|
2641
|
+
=== Scrollbar
|
2642
|
+
|
2643
|
+
The Scrollbar module in SwiperJS is a powerful tool that enhances user
|
2644
|
+
interaction and provides visual feedback within your slider. Here's a
|
2645
|
+
breakdown of its key functionalities:
|
2646
|
+
|
2647
|
+
Visual Indicator::
|
2648
|
+
The module renders a visual scrollbar that dynamically reflects the
|
2649
|
+
slider's current position. This provides users with a clear understanding
|
2650
|
+
of where they are within the overall content.
|
2651
|
+
|
2652
|
+
Draggable Interaction::
|
2653
|
+
The scrollbar can be made draggable, allowing users to directly control
|
2654
|
+
the slider's position by moving the scrollbar handle. This offers an
|
2655
|
+
alternative navigation method to swiping or clicking.
|
2656
|
+
|
2657
|
+
Customization::
|
2658
|
+
You can extensively customize the appearance and behavior of the scrollbar
|
2659
|
+
to match your project's design. This includes options for size, color,
|
2660
|
+
position, and more.
|
2661
|
+
|
2662
|
+
[role="mt-4"]
|
2663
|
+
[[swiper-modules-scrollbar-parameters]]
|
2664
|
+
==== Parameters
|
2665
|
+
|
2666
|
+
Find all parameters available for the *Scrollbar* module.
|
2667
|
+
|
2668
|
+
.Scrollbar Parameters
|
2669
|
+
// [cols="3,2,3,4a", subs=+macros, options="header", width="100%", role="rtable mt-4 mb-5"]
|
2670
|
+
[cols=",,,", subs=+macros, options="header", width="100%", role="rtable mt-4 mb-5"]
|
2671
|
+
|===
|
2672
|
+
|Name |Type |Default |Description
|
2673
|
+
|
2674
|
+
|`dragClass`
|
2675
|
+
|string
|
2676
|
+
|_swiper-scrollbar-drag_
|
2677
|
+
|Scrollbar draggable element *CSS class*.
|
2678
|
+
|
2679
|
+
|`dragSize`
|
2680
|
+
|number \| _auto_
|
2681
|
+
|_auto_
|
2682
|
+
|*Size* of scrollbar *draggable element* in px.
|
2683
|
+
|
2684
|
+
|`draggable`
|
2685
|
+
|boolean
|
2686
|
+
|`false`
|
2687
|
+
|Set to `true` to enable make *scrollbar draggable* that allows you to
|
2688
|
+
control slider position.
|
2689
|
+
|
2690
|
+
|`el`
|
2691
|
+
|any
|
2692
|
+
|null
|
2693
|
+
|String with *CSS selector* or *HTML element* of the container with scrollbar.
|
2694
|
+
|
2695
|
+
|`enabled`
|
2696
|
+
|boolean
|
2697
|
+
|*no default*
|
2698
|
+
|Boolean property to use with breakpoints to enable \| disable *scrollbar*
|
2699
|
+
on certain *breakpoints*.
|
2700
|
+
|
2701
|
+
|`hide`
|
2702
|
+
|boolean
|
2703
|
+
|`true`
|
2704
|
+
|Hide scrollbar automatically *after* user interaction.
|
2705
|
+
|
2706
|
+
|`horizontalClass`
|
2707
|
+
|string
|
2708
|
+
|_swiper-scrollbar-horizontal_
|
2709
|
+
|*CSS class name* set to scrollbar in *horizontal* Swiper.
|
2710
|
+
|
2711
|
+
|`lockClass`
|
2712
|
+
|string
|
2713
|
+
|_swiper-scrollbar-lock_
|
2714
|
+
|Scrollbar element additional CSS class when it is disabled.
|
2715
|
+
|
2716
|
+
|`scrollbarDisabledClass`
|
2717
|
+
|string
|
2718
|
+
|_swiper-scrollbar-disabled_
|
2719
|
+
|*CSS class name* added on swiper container and scrollbar element when
|
2720
|
+
scrollbar is *disabled* by *breakpoint*.
|
2721
|
+
|
2722
|
+
|`snapOnRelease`
|
2723
|
+
|boolean
|
2724
|
+
|`false`
|
2725
|
+
|Set to `true` to snap slider position to slides when you release scrollbar.
|
2726
|
+
|
2727
|
+
|`verticalClass`
|
2728
|
+
|string
|
2729
|
+
|_swiper-scrollbar-vertical_
|
2730
|
+
|*CSS class name* set to scrollbar in *vertical* Swiper.
|
2731
|
+
|===
|
2732
|
+
|
2733
|
+
[role="mt-4"]
|
2734
|
+
[[swiper-modules-scrollbar-properties]]
|
2735
|
+
==== Properties
|
2736
|
+
|
2737
|
+
Find below available *Properties* for the SwiperJS *Scrollbar* module.
|
2738
|
+
|
2739
|
+
.Scrollbar Properties
|
2740
|
+
[cols="3,9a", subs=+macros, options="header", width="100%", role="rtable mt-4 mb-5" mb-5]
|
2741
|
+
|===
|
2742
|
+
|Property |Description
|
2743
|
+
|
2744
|
+
|`dragEl`
|
2745
|
+
|*HTML Element* of Scrollbar *draggable handler* element.
|
2746
|
+
|
2747
|
+
|`el`
|
2748
|
+
|HTML Element of Scrollbar *container* element.
|
2749
|
+
|
2750
|
+
|===
|
2751
|
+
|
2752
|
+
|
2753
|
+
[role="mt-4"]
|
2754
|
+
[[swiper-modules-scrollbar-methods]]
|
2755
|
+
==== Methods
|
2756
|
+
|
2757
|
+
Find below available *Methods* for the SwiperJS *Scrollbar* module.
|
2758
|
+
|
2759
|
+
.Scrollbar Methods
|
2760
|
+
[cols="3,9a", subs=+macros, options="header", width="100%", role="rtable mt-4 mb-5" mb-5]
|
2761
|
+
|===
|
2762
|
+
|Name |Description
|
2763
|
+
|
2764
|
+
|`destroy`
|
2765
|
+
|Destroy *scrollbar*.
|
2766
|
+
|
2767
|
+
|`init`
|
2768
|
+
|Initialize *scrollbar*.
|
2769
|
+
|
2770
|
+
|`setTranslate`
|
2771
|
+
|Updates *scrollbar translate*.
|
2772
|
+
|
2773
|
+
|`updateSize`
|
2774
|
+
|Updates scrollbar *track and handler* sizes.
|
2775
|
+
|
2776
|
+
|===
|
2777
|
+
|
2778
|
+
[role="mt-4"]
|
2779
|
+
[[swiper-modules-scrollbar-events]]
|
2780
|
+
==== Events
|
2781
|
+
|
2782
|
+
[role="mt-4"]
|
2783
|
+
[[swiper-modules-event-scrollbarDragEnd]]
|
2784
|
+
===== scrollbarDragEnd
|
2785
|
+
|
2786
|
+
Event fired on draggable scrollbar *drag end*.
|
2787
|
+
|
2788
|
+
[NOTE]
|
2789
|
+
====
|
2790
|
+
Receives *scrollbar event* as an *argument*.
|
2791
|
+
====
|
2792
|
+
|
2793
|
+
[cols="12a", subs=+macros, options="header", width="100%", role="rtable mt-4 mb-5"]
|
2794
|
+
|===
|
2795
|
+
|Usage
|
2796
|
+
|
2797
|
+
|
|
2798
|
+
[source, js]
|
2799
|
+
----
|
2800
|
+
const swiper = new Swiper('#swiper_id', {
|
2801
|
+
// option settings ...
|
2802
|
+
on: {
|
2803
|
+
scrollbarDragEnd: (swiper, event) => {
|
2804
|
+
// do something
|
2805
|
+
}
|
2806
|
+
}
|
2807
|
+
});
|
2808
|
+
----
|
2809
|
+
|
2810
|
+
|===
|
2811
|
+
|
2812
|
+
[role="mt-4"]
|
2813
|
+
[[swiper-modules-event-scrollbarDragMove]]
|
2814
|
+
===== scrollbarDragMove
|
2815
|
+
|
2816
|
+
Event will be fired on draggable scrollbar *drag move*.
|
2817
|
+
|
2818
|
+
[NOTE]
|
2819
|
+
====
|
2820
|
+
Receives *scrollbar event* as an *argument*.
|
2821
|
+
====
|
2822
|
+
|
2823
|
+
[cols="12a", subs=+macros, options="header", width="100%", role="rtable mt-4 mb-5"]
|
2824
|
+
|===
|
2825
|
+
|Usage
|
2826
|
+
|
2827
|
+
|
|
2828
|
+
[source, js]
|
2829
|
+
----
|
2830
|
+
const swiper = new Swiper('#swiper_id', {
|
2831
|
+
// option settings ...
|
2832
|
+
on: {
|
2833
|
+
scrollbarDragMove: (swiper, event) => {
|
2834
|
+
// do something
|
2835
|
+
}
|
2836
|
+
}
|
2837
|
+
});
|
2838
|
+
----
|
2839
|
+
|
2840
|
+
|===
|
2841
|
+
|
2842
|
+
[role="mt-4"]
|
2843
|
+
[[swiper-modules-event-scrollbarDragStart]]
|
2844
|
+
===== scrollbarDragStart
|
2845
|
+
|
2846
|
+
Event will be fired on draggable scrollbar *drag start*.
|
2847
|
+
|
2848
|
+
[NOTE]
|
2849
|
+
====
|
2850
|
+
Receives *scrollbar event* as an *argument*.
|
2851
|
+
====
|
2852
|
+
|
2853
|
+
[cols="12a", subs=+macros, options="header", width="100%", role="rtable mt-4 mb-5"]
|
2854
|
+
|===
|
2855
|
+
|Usage
|
2856
|
+
|
2857
|
+
|
|
2858
|
+
[source, js]
|
2859
|
+
----
|
2860
|
+
const swiper = new Swiper('#swiper_id', {
|
2861
|
+
// option settings ...
|
2862
|
+
on: {
|
2863
|
+
scrollbarDragStart: (swiper, event) => {
|
2864
|
+
// do something
|
2865
|
+
}
|
2866
|
+
}
|
2867
|
+
});
|
2868
|
+
----
|
2869
|
+
|
2870
|
+
|===
|
2871
|
+
|
2872
|
+
[role="mt-4"]
|
2873
|
+
[[swiper-modules-scrollbar-css-properties]]
|
2874
|
+
==== CSS Properties
|
2875
|
+
|
2876
|
+
[source, css]
|
2877
|
+
----
|
2878
|
+
{
|
2879
|
+
--swiper-scrollbar-border-radius: 10px;
|
2880
|
+
--swiper-scrollbar-top: auto;
|
2881
|
+
--swiper-scrollbar-bottom: 4px;
|
2882
|
+
--swiper-scrollbar-left: auto;
|
2883
|
+
--swiper-scrollbar-right: 4px;
|
2884
|
+
--swiper-scrollbar-sides-offset: 1%;
|
2885
|
+
--swiper-scrollbar-bg-color: rgba(0, 0, 0, 0.1);
|
2886
|
+
--swiper-scrollbar-drag-bg-color: rgba(0, 0, 0, 0.5);
|
2887
|
+
--swiper-scrollbar-size: 4px;
|
2888
|
+
}
|
2889
|
+
----
|
2890
|
+
|
2891
|
+
|
2892
|
+
[role="mt-5"]
|
2893
|
+
[[swiper-modules-thumbs]]
|
2894
|
+
=== Thumbs
|
2895
|
+
|
2896
|
+
In SwiperJS, the Thumbs module enables to create a *thumbnail* navigation
|
2897
|
+
(slave) for (master) sliders.
|
2898
|
+
|
2899
|
+
In addition to the SwiperJS <<Controller>> module the API comes with the
|
2900
|
+
*Thumbs module* that is designed to work with a additional (slave)
|
2901
|
+
*thumbs swiper* for a *more correct* way for *syncing* two swipers.
|
2902
|
+
|
2903
|
+
[role="mt-4"]
|
2904
|
+
[[swiper-modules-thumbs-parameters]]
|
2905
|
+
==== Parameters
|
2906
|
+
|
2907
|
+
Find all parameters available for the *Thumbs* module.
|
2908
|
+
|
2909
|
+
.Thumbs Parameters
|
2910
|
+
[cols="3,2,3,4a", subs=+macros, options="header", width="100%", role="rtable mt-4 mb-5"]
|
2911
|
+
|===
|
2912
|
+
|Name |Type |Default |Description
|
2913
|
+
|
2914
|
+
|`autoScrollOffset`
|
2915
|
+
|number
|
2916
|
+
|0
|
2917
|
+
|Allows to set on which thumbs active slide from edge it should automatically
|
2918
|
+
move scroll thumbs. For example, if set to 1 and last visible thumb will be
|
2919
|
+
activated (1 from edge) it will auto scroll thumbs.
|
2920
|
+
|
2921
|
+
|`multipleActiveThumbs`
|
2922
|
+
|boolean
|
2923
|
+
|`true`
|
2924
|
+
|When enabled multiple thumbnail slides may get activated.
|
2925
|
+
|
2926
|
+
|`slideThumbActiveClass`
|
2927
|
+
|string
|
2928
|
+
|_swiper-slide-thumb-active_
|
2929
|
+
|Additional class that will be added to activated thumbs swiper slide.
|
2930
|
+
|
2931
|
+
|`swiper`
|
2932
|
+
|any
|
2933
|
+
|null
|
2934
|
+
|SwiperJS instance of swiper used as thumbs or object with SwiperJS API
|
2935
|
+
parameters to initialize thumbs swiper.
|
2936
|
+
|
2937
|
+
|`thumbsContainerClass`
|
2938
|
+
|string
|
2939
|
+
|_swiper-thumbs_
|
2940
|
+
|Additional class that will be added to thumbs swiper
|
2941
|
+
|
2942
|
+
|===
|
2943
|
+
|
2944
|
+
[role="mt-4"]
|
2945
|
+
[[swiper-modules-thumbs-properties]]
|
2946
|
+
==== Properties
|
2947
|
+
|
2948
|
+
Find below available *Properties* for the SwiperJS *Thumbs* module.
|
2949
|
+
|
2950
|
+
.Thumbs Properties
|
2951
|
+
[cols="3,3,6a", subs=+macros, options="header", width="100%", role="rtable mt-4 mb-5"]
|
2952
|
+
|===
|
2953
|
+
|Name |Type |Description
|
2954
|
+
|
2955
|
+
|`swiper`
|
2956
|
+
|any
|
2957
|
+
|SwiperJS instance of thumbs swiper.
|
2958
|
+
|
2959
|
+
|===
|
2960
|
+
|
2961
|
+
[role="mt-4"]
|
2962
|
+
[[swiper-modules-thumbs-methods]]
|
2963
|
+
==== Methods
|
2964
|
+
|
2965
|
+
Find below available *Methods* for the SwiperJS *Thumbs* module.
|
2966
|
+
|
2967
|
+
[role="mt-4"]
|
2968
|
+
[[swiper-modules-thumbs-methods-init]]
|
2969
|
+
===== init
|
2970
|
+
|
2971
|
+
Initialize thumbs.
|
2972
|
+
|
2973
|
+
[cols="12a", subs=+macros, options="header", width="100%", role="rtable mt-4 mb-5"]
|
2974
|
+
|===
|
2975
|
+
|Usage
|
2976
|
+
|
2977
|
+
|
|
2978
|
+
[source, js]
|
2979
|
+
----
|
2980
|
+
const swiper = new Swiper('#swiper_id', {
|
2981
|
+
// option settings ...
|
2982
|
+
on: {
|
2983
|
+
init: (swiper) => {
|
2984
|
+
// do something
|
2985
|
+
}
|
2986
|
+
}
|
2987
|
+
});
|
2988
|
+
----
|
2989
|
+
|
2990
|
+
|===
|
2991
|
+
|
2992
|
+
[role="mt-4"]
|
2993
|
+
[[swiper-modules-thumbs-methods-update]]
|
2994
|
+
===== update
|
2995
|
+
|
2996
|
+
Update thumbs.
|
2997
|
+
|
2998
|
+
[cols="12a", subs=+macros, options="header", width="100%", role="rtable mt-4 mb-5"]
|
2999
|
+
|===
|
3000
|
+
|Usage
|
3001
|
+
|
3002
|
+
|
|
3003
|
+
[source, js]
|
3004
|
+
----
|
3005
|
+
const swiper = new Swiper('#swiper_id', {
|
3006
|
+
// option settings ...
|
3007
|
+
on: {
|
3008
|
+
update: (initial) => {
|
3009
|
+
// do something
|
3010
|
+
}
|
3011
|
+
}
|
3012
|
+
});
|
3013
|
+
----
|
3014
|
+
|
3015
|
+
|===
|
3016
|
+
|
3017
|
+
|
3018
|
+
[role="mt-5"]
|
3019
|
+
[[swiper-modules-virtual-slides]]
|
3020
|
+
=== Virtual Slides
|
3021
|
+
|
3022
|
+
Virtual Slides module allows to keep just required amount of slides in
|
3023
|
+
DOM. It is very useful in terms in performance and memory issues if you
|
3024
|
+
have a lot of slides, especially slides with heavyweight DOM tree or
|
3025
|
+
images.
|
3026
|
+
|
3027
|
+
[NOTE]
|
3028
|
+
====
|
3029
|
+
Virtual Slides *doesn't work* with *Grid* module and if parameter
|
3030
|
+
`slidesPerView` is set to _auto_.
|
3031
|
+
====
|
3032
|
+
|
3033
|
+
[role="mt-4"]
|
3034
|
+
[[swiper-modules-virtual-slides-parameters]]
|
3035
|
+
==== Parameters
|
3036
|
+
|
3037
|
+
Find all parameters available for the *Virtual Slides* module.
|
3038
|
+
|
3039
|
+
.Virtual Slides Parameters
|
3040
|
+
[cols="3,2,3,4a", subs=+macros, options="header", width="100%", role="rtable mt-4 mb-5"]
|
3041
|
+
|===
|
3042
|
+
|Name |Type |Default |Description
|
3043
|
+
|
3044
|
+
|`addSlidesAfter`
|
3045
|
+
|number
|
3046
|
+
|0
|
3047
|
+
|Increases amount of pre-rendered slides after active slide.
|
3048
|
+
|
3049
|
+
|`addSlidesBefore`
|
3050
|
+
|number
|
3051
|
+
|0
|
3052
|
+
|Increases amount of pre-rendered slides before active slide.
|
3053
|
+
|
3054
|
+
|`cache`
|
3055
|
+
|boolean
|
3056
|
+
|`true`
|
3057
|
+
|Enables DOM cache of rendering slides html elements. Once rendered,
|
3058
|
+
they will be saved to cache and reused from it.
|
3059
|
+
|
3060
|
+
|`enabled`
|
3061
|
+
|boolean
|
3062
|
+
|`false`
|
3063
|
+
|Whether the virtual slides are enabled.
|
3064
|
+
|
3065
|
+
|`renderExternal`
|
3066
|
+
|function(data)
|
3067
|
+
|*no default*
|
3068
|
+
|Function for external rendering (e.g. using some other library to handle
|
3069
|
+
DOM manipulations and state like *React.js* or *Vue.js*). As an argument it
|
3070
|
+
accepts `data` object with the following properties:
|
3071
|
+
|
3072
|
+
* `offset`, slides left/top offset in px
|
3073
|
+
* `from`, index of first slide required to be rendered
|
3074
|
+
* `to`, index of last slide required to be rendered
|
3075
|
+
* `slides`, array with slide items to be rendered
|
3076
|
+
|
3077
|
+
|`renderExternalUpdate`
|
3078
|
+
|boolean
|
3079
|
+
|`true`
|
3080
|
+
|When enabled (by default) it will update swiper layout right after
|
3081
|
+
renderExternal called. Useful to disable and update swiper manually when
|
3082
|
+
used with render libraries that renders asynchronously
|
3083
|
+
|
3084
|
+
|`renderSlide`
|
3085
|
+
|function(slide, index)
|
3086
|
+
|*no default*
|
3087
|
+
|Function to render slide. As an argument it accepts current slide item
|
3088
|
+
for `slides` array and index number of the current slide. Function must
|
3089
|
+
return an outer HTML of the swiper slide or slide HTML element.
|
3090
|
+
|
3091
|
+
|`slides`
|
3092
|
+
|Text[]
|
3093
|
+
|[]
|
3094
|
+
|Array with slides.
|
3095
|
+
|
3096
|
+
|===
|
3097
|
+
|
3098
|
+
[cols="3,3,6a", subs=+macros, options="header", width="100%", role="rtable mt-4 mb-5" mb-5]
|
3099
|
+
|===
|
3100
|
+
|Name |Type |Description
|
3101
|
+
|
3102
|
+
|`cache`
|
3103
|
+
|object
|
3104
|
+
|Object with cached slides HTML elements.
|
3105
|
+
|
3106
|
+
|`from`
|
3107
|
+
|number
|
3108
|
+
|Index of first rendered slide.
|
3109
|
+
|
3110
|
+
|`slides`
|
3111
|
+
|Text[]
|
3112
|
+
|Array with slide items passed by `virtual.slides` parameter.
|
3113
|
+
|
3114
|
+
|`to`
|
3115
|
+
|number
|
3116
|
+
|Index of last rendered slide.
|
3117
|
+
|
3118
|
+
|===
|
3119
|
+
|
3120
|
+
[role="mt-4"]
|
3121
|
+
[[swiper-modules-virtual-slides-methods]]
|
3122
|
+
==== Methods
|
3123
|
+
|
3124
|
+
Find below available *Methods* for the SwiperJS *Virtual Slides* module.
|
3125
|
+
|
3126
|
+
.Virtual Slides Methods
|
3127
|
+
[cols="3,9a", subs=+macros, options="header", width="100%", role="rtable mt-4 mb-5" mb-5]
|
3128
|
+
|===
|
3129
|
+
|Name |Description
|
3130
|
+
|
3131
|
+
|`appendSlide(slide)`
|
3132
|
+
|Append slide. Slides defined by `slides` can be a single slide item or
|
3133
|
+
an array with such slides.
|
3134
|
+
|
3135
|
+
[CAUTION]
|
3136
|
+
====
|
3137
|
+
Only for *Core* version. In *React* & *Vue* it should be done by modifying
|
3138
|
+
slides array/data/source.
|
3139
|
+
====
|
3140
|
+
|
3141
|
+
|`prependSlide(slide)`
|
3142
|
+
|Prepend slide. Slides defined by `slides` can be a single slide item or
|
3143
|
+
an array with such slides.
|
3144
|
+
|
3145
|
+
[CAUTION]
|
3146
|
+
====
|
3147
|
+
Only for *Core* version. In *React* & *Vue* it should be done by modifying
|
3148
|
+
slides array/data/source.
|
3149
|
+
====
|
3150
|
+
|
3151
|
+
|`removeAllSlides`
|
3152
|
+
| Remove all slides.
|
3153
|
+
|
3154
|
+
[CAUTION]
|
3155
|
+
====
|
3156
|
+
Only for *Core* version. In *React* & *Vue* it should be done by modifying
|
3157
|
+
slides array/data/source.
|
3158
|
+
====
|
3159
|
+
|
3160
|
+
|`removeSlide(slideIndexes)`
|
3161
|
+
|Remove specific slide or slides. Index defined by `slideIndexes` can be
|
3162
|
+
a number with slide index to remove or an array with indexes.
|
3163
|
+
|
3164
|
+
[CAUTION]
|
3165
|
+
====
|
3166
|
+
Only for *Core* version. In *React* & *Vue* it should be done by modifying
|
3167
|
+
slides array/data/source.
|
3168
|
+
====
|
3169
|
+
|
3170
|
+
|`update(force)`
|
3171
|
+
|Update virtual slides state.
|
3172
|
+
|===
|
3173
|
+
|
3174
|
+
[role="mt-4"]
|
3175
|
+
[[swiper-modules-virtual-slides-dom]]
|
3176
|
+
==== DOM
|
3177
|
+
|
3178
|
+
Since version 9, SwiperJS virtual slides can work with slides originally
|
3179
|
+
rendered in DOM. On initialize it will remove them from DOM, cache and
|
3180
|
+
then re-use the ones which are required:
|
3181
|
+
|
3182
|
+
[source, html]
|
3183
|
+
----
|
3184
|
+
<div class="swiper">
|
3185
|
+
<div class="swiper-wrapper">
|
3186
|
+
<div class="swiper-slide">Slide 1</div>
|
3187
|
+
<div class="swiper-slide">Slide 2</div>
|
3188
|
+
...
|
3189
|
+
<div class="swiper-slide">Slide 100</div>
|
3190
|
+
</div>
|
3191
|
+
</div>
|
3192
|
+
|
3193
|
+
<script>
|
3194
|
+
const swiper = new Swiper('#swiper_id', {
|
3195
|
+
virtual: {
|
3196
|
+
enabled: true
|
3197
|
+
}
|
3198
|
+
});
|
3199
|
+
</script>
|
3200
|
+
----
|
3201
|
+
|
3202
|
+
|
3203
|
+
[role="mt-5"]
|
3204
|
+
[[swiper-modules-zoom]]
|
3205
|
+
=== Zoom
|
3206
|
+
|
3207
|
+
SwiperJS supports a Zoom functionality on images (similar to what you see
|
3208
|
+
on iOS when browsing single photo) where you can zoom-in image by pinch
|
3209
|
+
gesture and or by zoom-in/zoom-out by double tap on it. In this case,
|
3210
|
+
a additional layout is required:
|
3211
|
+
|
3212
|
+
.Example
|
3213
|
+
[role="mt-4 mb-4"]
|
3214
|
+
[source, html]
|
3215
|
+
----
|
3216
|
+
<div class="swiper">
|
3217
|
+
<div class="swiper-wrapper">
|
3218
|
+
<div class="swiper-slide">
|
3219
|
+
<div class="swiper-zoom-container">
|
3220
|
+
<img src="path/to/image1.jpg" />
|
3221
|
+
</div>
|
3222
|
+
</div>
|
3223
|
+
<div class="swiper-slide">
|
3224
|
+
<div class="swiper-zoom-container">
|
3225
|
+
<img src="path/to/image2.jpg" />
|
3226
|
+
</div>
|
3227
|
+
</div>
|
3228
|
+
<div class="swiper-slide">Plain slide with text</div>
|
3229
|
+
<div class="swiper-slide">
|
3230
|
+
<!-- Override maxRatio parameter -->
|
3231
|
+
<div class="swiper-zoom-container" data-swiper-zoom="5">
|
3232
|
+
<img src="path/to/image1.jpg" />
|
3233
|
+
</div>
|
3234
|
+
</div>
|
3235
|
+
</div>
|
3236
|
+
</div>
|
3237
|
+
----
|
3238
|
+
|
3239
|
+
All *zoomable* images should be wrapped with the div with
|
3240
|
+
_swiper-zoom-container_ class. By default it expects to zoom one of
|
3241
|
+
the `img`, `picture` or `canvas` element. If you want to make zoom on
|
3242
|
+
some other custom element, then just add _swiper-zoom-target_ class to
|
3243
|
+
this element.
|
3244
|
+
|
3245
|
+
.Example
|
3246
|
+
[source, html]
|
3247
|
+
----
|
3248
|
+
<div class="swiper">
|
3249
|
+
<div class="swiper-wrapper">
|
3250
|
+
<div class="swiper-slide">
|
3251
|
+
<div class="swiper-zoom-container">
|
3252
|
+
<!-- custom zoomable element -->
|
3253
|
+
<div
|
3254
|
+
class="swiper-zoom-target"
|
3255
|
+
style="background-image: url(...)"
|
3256
|
+
></div>
|
3257
|
+
</div>
|
3258
|
+
</div>
|
3259
|
+
</div>
|
3260
|
+
</div>
|
3261
|
+
----
|
3262
|
+
|
3263
|
+
You can override `maxRatio` parameter for specific slides by using
|
3264
|
+
`data-swiper-zoom` attribute on zoom container.
|
3265
|
+
|
3266
|
+
[role="mt-4"]
|
3267
|
+
[[swiper-modules-zoom-parameters]]
|
3268
|
+
==== Parameters
|
3269
|
+
|
3270
|
+
Find all parameters available for the *Zoom* module.
|
3271
|
+
|
3272
|
+
.Zoom Parameters
|
3273
|
+
[cols="3,2,3,4a", subs=+macros, options="header", width="100%", role="rtable mt-4 mb-5"]
|
3274
|
+
|===
|
3275
|
+
|Name |Type |Default |Description
|
3276
|
+
|
3277
|
+
|`containerClass`
|
3278
|
+
|string
|
3279
|
+
|_swiper-zoom-container_
|
3280
|
+
|*CSS class name* of zoom container.
|
3281
|
+
|
3282
|
+
|`limitToOriginalSize`
|
3283
|
+
|boolean
|
3284
|
+
|`false`
|
3285
|
+
|When set to true, the image will not be scaled past 100% of its
|
3286
|
+
original size.
|
3287
|
+
|
3288
|
+
|`maxRatio`
|
3289
|
+
|number
|
3290
|
+
|3
|
3291
|
+
|Maximum image zoom multiplier.
|
3292
|
+
|
3293
|
+
|`minRatio`
|
3294
|
+
|number
|
3295
|
+
|1
|
3296
|
+
|Minimal image zoom multiplier.
|
3297
|
+
|
3298
|
+
|`panOnMouseMove`
|
3299
|
+
|boolean
|
3300
|
+
|`false`
|
3301
|
+
|When set to true, a zoomed in image will automatically pan while moving
|
3302
|
+
the mouse over the image.
|
3303
|
+
|
3304
|
+
|`toggle`
|
3305
|
+
|boolean
|
3306
|
+
|`true`
|
3307
|
+
|Enable/disable zoom-in by slide's double tap.
|
3308
|
+
|
3309
|
+
|`zoomedSlideClass`
|
3310
|
+
|string
|
3311
|
+
|_swiper-slide-zoomed_
|
3312
|
+
|CSS class name of zoomed in container.
|
3313
|
+
|
3314
|
+
|===
|
3315
|
+
|
3316
|
+
[role="mt-4"]
|
3317
|
+
[[swiper-modules-zoom-properties]]
|
3318
|
+
==== Properties
|
3319
|
+
|
3320
|
+
Find below available *Properties* for the SwiperJS *Zoom* module.
|
3321
|
+
|
3322
|
+
.Zoom Properties
|
3323
|
+
[cols="3,3,6a", subs=+macros, options="header", width="100%", role="rtable mt-4 mb-5"]
|
3324
|
+
|===
|
3325
|
+
|Name |Type |Description
|
3326
|
+
|
3327
|
+
|`enabled`
|
3328
|
+
|boolean
|
3329
|
+
|Whether the zoom module is enabled.
|
3330
|
+
|
3331
|
+
|`scale`
|
3332
|
+
|number
|
3333
|
+
|Current image scale ratio.
|
3334
|
+
|
3335
|
+
|===
|
3336
|
+
|
3337
|
+
[role="mt-4"]
|
3338
|
+
[[swiper-modules-zoom-methods]]
|
3339
|
+
==== Methods
|
3340
|
+
|
3341
|
+
Find below available *Methods* for the SwiperJS *Zoom* module.
|
3342
|
+
|
3343
|
+
.Zoom Methods
|
3344
|
+
[cols="3,9a", subs=+macros, options="header", width="100%", role="rtable mt-4 mb-5" mb-5]
|
3345
|
+
|===
|
3346
|
+
|Name |Description
|
3347
|
+
|
3348
|
+
|`disable`
|
3349
|
+
|Disable the Zoom module.
|
3350
|
+
|
3351
|
+
|`enable`
|
3352
|
+
|Enable the Zoom module.
|
3353
|
+
|
3354
|
+
|`in(ratio)`
|
3355
|
+
|Zoom in the image of the currently *active slide*. Optionally accepts
|
3356
|
+
*custom zoom ratio*.
|
3357
|
+
|
3358
|
+
|`out`
|
3359
|
+
|Zoom out the image of the currently *active slide*.
|
3360
|
+
|
3361
|
+
|`toggle(event)`
|
3362
|
+
|Toggle image zoom of the currently *active slide*.
|
3363
|
+
|
3364
|
+
|===
|
3365
|
+
|
3366
|
+
[role="mt-4"]
|
3367
|
+
[[swiper-modules-zoom-events]]
|
3368
|
+
==== Events
|
3369
|
+
|
3370
|
+
The module allows you to zoom in and out of images *within* a slider.
|
3371
|
+
*Zoom Events* likely refers to *custom events* you might create or utilize
|
3372
|
+
within a SwiperJS implementation to:
|
3373
|
+
|
3374
|
+
* Trigger actions when zooming begins, ends, or changes.
|
3375
|
+
* Coordinate with other parts of your application based on zoom levels.
|
3376
|
+
* Enhance user interactions with dynamic effects or UI updates.
|
3377
|
+
|
3378
|
+
[role="mt-4"]
|
3379
|
+
[[swiper-modules-zoom-events-zoomChange]]
|
3380
|
+
===== zoomChange
|
3381
|
+
|
3382
|
+
Event fired on zoom change.
|
3383
|
+
|
3384
|
+
[NOTE]
|
3385
|
+
====
|
3386
|
+
Receives evants *scale*, *imageEl*, *slideEl* as an *argument*.
|
3387
|
+
====
|
3388
|
+
|
3389
|
+
[cols="12a", subs=+macros, options="header", width="100%", role="rtable mt-4 mb-5"]
|
3390
|
+
|===
|
3391
|
+
|Usage
|
3392
|
+
|
3393
|
+
|
|
3394
|
+
[source, js]
|
3395
|
+
----
|
3396
|
+
const swiper = new Swiper('#swiper_id', {
|
3397
|
+
// option settings ...
|
3398
|
+
on: {
|
3399
|
+
zoomChange: (swiper, scale, imageEl, slideEl) => {
|
3400
|
+
// do something
|
3401
|
+
}
|
3402
|
+
}
|
3403
|
+
});
|
3404
|
+
----
|
3405
|
+
|
3406
|
+
|===
|
3407
|
+
|
3408
|
+
|
3409
|
+
////
|
3410
|
+
|
3411
|
+
// kapott 1
|
3412
|
+
[source, js]
|
3413
|
+
----
|
3414
|
+
// Array with translate X, Y and Z values
|
3415
|
+
translate: (string | number)[];
|
3416
|
+
// Array with rotate X, Y and Z values (in deg)
|
3417
|
+
rotate?: number[];
|
3418
|
+
// Slide opacity
|
3419
|
+
opacity?: number;
|
3420
|
+
// Slide scale
|
3421
|
+
scale?: number;
|
3422
|
+
// Enables slide shadow
|
3423
|
+
shadow?: boolean;
|
3424
|
+
// Transform origin, e.g. `left bottom`
|
3425
|
+
origin?: string;
|
3426
|
+
----
|
3427
|
+
|
3428
|
+
// kapott 2
|
3429
|
+
[source, js]
|
3430
|
+
----
|
3431
|
+
// Array with translate X, Y and Z values
|
3432
|
+
translate: (string | number)[];
|
3433
|
+
// Array with rotate X, Y and Z values (in deg)
|
3434
|
+
rotate?: number[];
|
3435
|
+
// Slide opacity
|
3436
|
+
opacity?: number;
|
3437
|
+
// Slide scale
|
3438
|
+
scale?: number;
|
3439
|
+
// Enables slide shadow
|
3440
|
+
shadow?: boolean;
|
3441
|
+
// Transform origin, e.g. `left bottom`
|
3442
|
+
origin?: string;
|
3443
|
+
----
|
3444
|
+
|
3445
|
+
////
|