9.2.0 (2023-03-31)
- controller: add
nulltype (3177936), closes #6505 - controller: prevent controlled swipers from being called when destroyed (#6501) (a266b78), closes #6491
- mousewheel: Initialize lastClickTime to very old time (#6497) (0983ded), closes #6496
- pagination: fix pagination.d.ts render functions return types (#6499) (34973a1)
- zoom: fix zoom out on double tap on sensitive touch screens (7f5c626)
- zoom: reset transform origin on zoom out (7f7f57e)
- core: lazyPreloadPrevNext option to preload prev/next images (#6544) (1cb3233)
- lazyPreloadPrevNext option to preload prev/next images (6d08635)
- zoom: highly improve pinch-zoom gestures handling (6016a50)
9.1.1 (2023-03-16)
- core: fixed loop when using custom
slideActiveClass(#6495) (756ecdb) - element: reset initialized flag on disconnectedCallback (#6474) (1e4a235)
- loop: fix loopFix for controlled swipers (d7c0ef7), closes #6491
- loop: fix slides closure when removing last slide (1a02271), closes #6477
- pagination: correctly support multiple bullets paginations (e24bd8c), closes #6462
- pagination: escape
+char in pagination classes (d0beb9f), closes #6486 - pagination: support bulle multiple classes (20b05fa), closes #6447
- react: fix virtual loop when not enough slides (57d8eea), closes #6487
- element: add
eventsPrefixprop to avoid collision with native events (d5df91f), closes #6450 - pagination: add border-radius variable (#6476) (c912590)
9.1.0 (2023-02-28)
- autoplay: fix a crash with resize when the autoplay has gone away during timeout (#6431) (adb40f4)
- core: correctly calc slide's DOM indexes, actual for Element (18b1f2b)
- core: fix loop when slidesPerGroup is not even to number of slides (f998115), closes #6412
- core: prevent observer trigger because of grab cursor (9597442), closes #6423
- core: proceed iOS's pointercancel as pointerup (50b65f6), closes #6414 #6382
- effect-creative: fix origin (7883408), closes #6439
- element: fix ignored
onevent handlers (898f76c), closes #6399 - pagination: double check if bullet exists (a335a41), closes #6422
- pagination: fix clickable pagination with slidesPerView > 1 and loop (cf8cdf5), closes #6415
- virtual: fix escaped HTML in virtual slides content (a61638a), closes #6404
- zoom: fix zoom stick on pointer out (6700980), closes #6396
- element: new global
window.SwiperElementRegisterParamsmethod to register acceptable element props (fb63358)
9.0.5 (2023-02-13)
9.0.4 (2023-02-10)
- autoplay: fixing autoplay undefined error (#6366) (f2a0572)
- pagination: fix pagination bullets children clicks (8bcff39), closes #6361
- virtual: grab DOM slides only from wrapper children (d59183d)
- zoom: fix gesture scale origin (c89b2dd), closes #6371
9.0.3 (2023-02-06)
- core: don't proceed lazy if swiper destroyed (4ea0102), closes #6322
- core: fix loop handling with virtual (69462d2), closes #6343
- element: fix converting boolean/string params to module object (192e0d4), closes #6328
- navigation: allow multiple classes in navigation options (#6345) (ca49b9f), closes #6344
- thumbs: ensure there is a slide to add a class (c6294ad), closes #6335
9.0.2 (2023-02-03)
- core: fixed loop behavior in free mode with mousewheel (336d908), closes #6323
- types:
spaceBetweencan also be a string (446fb06), closes #6286 - vue: declaration for
autoplayTimeLeftevent (8467397), closes #6333
9.0.1 (2023-02-02)
- core: fix class removal in setBreakpoints (6cb79cf), closes #6319
- virtual: fix undefined
document(9cee290), closes #6318
9.0.0 (2023-02-01)
- new
oneWayMovementparameter - removed Dom7 dependency
- all new Loop mode without slides duplication
- removed images loading functionality:
preloadImages,updateOnImagesReadyparameters
- all new Swiper Element (WebComponent)
- removed Swiper Solid components (in favor of Swiper WebComponent)
- removed Swiper Angular components (in favor of Swiper WebComponent)
- removed Swiper Svelte components (in favor of Swiper WebComponent)
- all new autoplay module
- now
controller.controlparameter also accepts HTMLElement or CSS string with the selector of swiper to control
- Lazy module has been moved to core and simplified in favor of native loading="lazy"
- more CSS variables to control appearance and position
- support parallax
rotate
- now
thumbs.swiperparameter also accepts HTMLElement or CSS string with the selector of thumbs swiper
- added support for loop mode
- improved performance
- will work now with slides initially rendered in DOM
swiper.zoom.in(ratio)method now accepts custom zoom ratio
- add
wrapperClassto swiper-wrapper in React & Vue components (7aaa0d1), closes #6254 #5942 - core: add
loopPreventsSlidingparameter (6533890)
- core: new
oneWayMovementparameter (ce2ea7f) - navigation: more CSS variables to control appearance and position (6db9439)
- pagination: more CSS variables to control appearance and position (c8b1228)
- scrollbar: more CSS variables to control appearance (cfad536)
- add element core version (de6c7f7)
- export element css styles (51334a3)
- injectStyles and injectStylesUrls params (71b10b2)
- parallax: support parallax rotate (4949163), closes #6126
- zoom:
inmethod now accepts custom zoom ratio (d88df61), closes #5527 - core: add loopedSlides parameter (1b076d9)
- element: add option to avoid styles injecting (2291ec8)
- thumbs: init thumbs on their appearance in DOM (a6b4cf7)
- element: add standalone styles (284b130)
- controller: support updated loop (6059e48)
- controller: support updated loop (03d9895)
- controller: support updated loop (e73b577)
- core: "fix" loop based on touch move direction (5ab7217)
- element: add CSS styles for modules for Swiper Element (6c36c80)
- core: add --swiper-wrapper-transition-timing-function CSS var (797bcda)
- navigation: more CSS vars (f41abe6)
- paginatrion: more CSS vars (6f63fe2)
- scrollbar: more CSS vars (875b35a)
- virtual:
renderSlideto support slide outer HTML and HTML element (fdcd644) - core: support for "swiper-slide-transform" element for better effects compatability with CSS mode (18b3e3f)
- core: remove Dom7 (44de97b)
- core: remove Dom7 (7cdcebf)
- core: don't prevent slidePrev/Next when animating in loop mode (b358737)
- autoplay: correct support for virtual slides delay + fix for stopping autoplay on click (43bf429)
- element: support for comples parameters via attrs in a form of
autoplay-delay(8161c57) - virtual: support for DOM virtual slides (59da65c)
- virtual: support loop mode with virtual slides (f890f1e)
- autoplay: all new Autoplay module (1b4ac21)
- core: remove unused
slide*DuplicateClassparameters (8007e1a) - core: all new loop mode without slides duplication (f57aa3b)
- remove
postinstallscript (12255cf) - core, zoom: rework touch handling logic to PointerEvents only (ede6b6d)
- core: make
thresholdparameter default to5(dfce8a3) - lazy: simplify Lazy module in favor of native loading="lazy" (d46d5d0)
- move new Lazy module to the Core (d51e1ce)
- react: add boolean
lazyprop to SwiperSlide to render lazy prelaoder (f5d137f) - remove Images loading functionality: preloadImages, updateOnImagesReady (4d02653)
- vue: add boolean
lazyprop to SwiperSlide to render lazy prelaoder (e36b580) - add new Swiper Custom Element (47f9518)
- remove Angular and SolidJS components (1329c10)
- remove Swiper Svelte components (52433ac)
- history: fix handling
popstateon init (483534f) - core: make isBeginning and isEnd true when translate is less than 1px diff (b2313d5), closes #6287
- react: fix React 18 compat types (4c916d4), closes #5799
- virtual: fix Virtual with CSS Mode when initialSlide > 0 (5ddf1d8)
8.4.7 (2023-01-30)
8.4.6 (2023-01-17)
8.4.5 (2022-11-21)
- a11y: fix JS error "swiper.a11y is undefined" (#6226) (02c1502)
- touch focusableElements jumps element (#6139) (339f52e)
8.4.4 (2022-10-12)
- add direct JS/CSS core and bundle exports (f519f80)
8.4.3 (2022-10-06)
- build-config: allow to custom modules by process.env.SWIPER_BUILD_MODULES (#6043) (b3c51c5)
- solid: fix handling dynamic slides (708133d), closes #6031
- solid: keep solid components in
.jsx(d7f7f65)
8.4.2 (2022-09-15)
8.4.1 (2022-09-15)
- core: fix swiping over nested shadow doms (7d09ab0), closes #6063
- react: fix issue with checking children (37a94ea), closes #6064
8.4.0 (2022-09-14)
- a11y: don't handle focus on pointer events (b251601), closes #5962 #5814 #5524 #5490 #5437
- angular: slidesPerGroupAuto is missing in params list for angular (#5933) (b80352a)
- core: fix
beforeSlideChangeStartevent routing (0e8a8b8), closes #5913 - event.path => event.composedPath (8df7edf), closes #5925
- types: add isLocked definition (f2bbae6), closes #5941
- types: add missing AutoplayMethods members (#5956) (6220c22)
- vue: fix swiperRef for Vue swiperSlide (#5994) (a2bcbb1)
- build: upgrade deps & cjs to esm (#5927) (921809b)
- cards-effect: add
perSlideRotateandperSlideOffsetparameters (db08a70), closes #5939 - core: new
loopedSlidesLimitparameter to re-duplicate slides (1afa4b8) - react: Allow SwiperSlide children as long as displayName includes SwiperSlide (#5954) (d1f7582)
- solid: keep solid components incompiled (18c6670), closes #5943
8.3.2 (2022-07-26)
- a11y: fix
focushandling (8a3dfee), closes #5905 - autoplay: don't run autoplay if swiper is hidden (4f2e30f), closes #5907
- core: new loopedSlidesLimit paramter and new functionality to increase duplicated slides (5156071)
8.3.1 (2022-07-13)
- packages: add index.js in /solid and /react (#5863) (6e94701)
- solid: fix reactivity (502c152), closes #5862
- solid: stop using cloneNode in sliders without loops in SolidJS (#5860) (d14c432)
8.3.0 (2022-07-06)
- all new Swiper SolidJS components thanks to @TiagoCavalcante 🎉
- move common helpers for React/Vue/Svelte/Solid to single files (90e8da1)
- a11y: allow disabling slideRole (#5838) (b376aa1)
8.2.6 (2022-06-29)
- thumbs: active class gets removed (#5826) (3267616)
- vue: virtualUpdate event is not declared (#5830) (8b00333)
- core: add
changeLanguageDirectionmethod to change it to RTL/LTR after init (f5bb7af), closes #3279 - navigation: add
navigationPrevandnavigationNextevents (d0c6365), closes #5832
8.2.5 (2022-06-27)
- pagination: double check for $el (baafb55)
8.2.4 (2022-06-13)
8.2.3 (2022-06-10)
- a11y: allow slideLabelMessage: null (#5783) (78a8d90)
- angular: update to angular v14 (097390d)
- scrollbar: add directional classes to scrollbar container (083a83f)
8.2.2 (2022-06-01)
- Revert "fix(autoplay): immediate proceed autoplay when
autoplay.delay = 0" (d942e83) - Revert "fix(autoplay): fix swiper getting stuck with
0autoplay delay" (56e050b)
8.2.1 (2022-05-31)
- core: fix issues with navigation/pagination
enabledprop (af9ed85)
8.2.0 (2022-05-31)
- autoplay: fix swiper getting stuck with
0autoplay delay (61db26f) - core: fix type Number in slideToLoop (#5732) (1e1336b)
- navigation: allow navigation to be enabled/disabled in breakpoints (052f863)
- pagination: allow pagination to be enabled/disabled in breakpoints (d748d49)
- scrollbar: allow scrollbar to be enabled/disabled in breakpoints (3f09fc7)
8.1.6 (2022-05-25)
- a11y: update slides a11y on slides amount change (31e2005), closes #5692
- autoplay: immediate proceed autoplay when
autoplay.delay = 0(81a4cc8) - lazy:
loadPrevNextfix whenslidesPerViewis fractional (94d4c9e), closes #5712 - lazy: unset lazy-loading class on swiper destroy (81d7fc4), closes #5737
- types: add
snapIndexandsnapGridprops (ee3d2dc), closes #5733
- navigation: default
opacity: 0styles for hidden navigation buttons (85f72f4)
8.1.5 (2022-05-16)
- core: add missing types comments (340f716), closes /github.com/nolimits4web/swiper/issues/5688#issuecomment-1118316055
- core: check for visibleSlides presence in updateAutoHeight (3909c45)
- core: fix getWrapper $el check (7702178), closes #5711
- navigation: remove duplicated rules (#5657) (333a3ae)
- react: move navigation, pagination, scrollbar to the end of container (2d3255f)
- svelte: fix incorrect parameters in event dispatching (#5716) (b7961a3)
- svelte: move navigation, pagination, scrollbar to the end of container (c8a4f67)
- vue: move navigation, pagination, scrollbar to the end of container (0d219f4)
8.1.4 (2022-04-24)
- core: animate preloader in visible slides if watchSlidesProgress is enabled (8174b5a)
- core: more checks for when swiper is destroyed (de47f09), closes #5656 #5635
- lazy: animate preloader in not visible slides (865529b)
8.1.3 (2022-04-20)
- effects: improve dynamic slide shadows re-creation for Cube and Flip effects (98b8a3e)
8.1.2 (2022-04-20)
- effects: fix slide shadows flickering in Safari for Cube and Flip effects (52f5ef7)
- cube-effect: set
--swiper-cube-translate-zCSS property on swiper-wrapper (758ad28)
8.1.1 (2022-04-15)
- lazy: fix lazy preloader in iOS 15 (794a625)
- virtual: fix leaked effects translate when Virtual enabled (a0e8dd4), closes #5588
8.1.0 (2022-04-08)
- pagination: formatter functions now accept strings as return values (#5610) (629c1c4)
- vue: add missing event (bda673f), closes #5558
- enabled not working (fix #5611) (#5612) (6a0554b)
- a11y: add
idparameter (213c8fe), closes #5586 - angular: support
[ngClass]in swiperSlide (#5562) (5d4ffdc) - effect-cards: add
rotateparameter (5f4ca8a), closes #5575
8.0.7 (2022-03-04)
- effect-cards: support for use with Virtual Slides (69a8870)
- virtual: better support for other effects rather than
slide(2dae84f)
8.0.6 (2022-02-14)
8.0.5 (2022-02-10)
- core: fix short swipes (8e1c12e)
8.0.4 (2022-02-10)
- angular: events types (#5424) (d8631d8)
- angular: lock output (#5442) (3bc27a4)
- core: allow nesting of styles in SASS (#5438) (c973bc8)
- core: rewind on swipes (#5422) (1a2f83b)
8.0.3 (2022-02-03)
- react:
useSwipercontext value (#5421) (60cbe75) - react: add autoplay to watched modules (#5419) (16059ad)
- svelte: add autoplay to watched modules (1463e05)
- vue: add autoplay to watched modules (da4d3cc)
8.0.2 (2022-02-02)
8.0.1 (2022-02-01)
- angular: fix angular export (8785e2b), closes #5414
- react: types for useSwiper and useSwiperSlide hooks (2cbf82c), closes #5413
8.0.0 (2022-02-01)
- a11y: update
aria-disabledon lock/unlock (8183466), closes #5383 - angular:
[@output](https://github.com/output)events emitting (#5225) (a34eb7a) - angular: get params types (#5390) (8731204)
- angular: toggle input (#5229) (#5254) (03acbe2)
- core: don't prevent focusable elements click when
allowTouchMove: false(f0eac04), closes #5358 - core: don't swipe over
<select>element (faeb14a), closes #5268 - lazy: only activate preloader-spin animation when slide is active (#5203) (b7d89ea), closes #5202
- react: compatibility with React 18 strict mode (68bcec8), closes #5398
- react: update
controller.controloncontrolprop array change (7c53de8), closes #5368 - svelte:
swiperSlideslot data with context (89f14ab) - types: bullets type should be
Dom7Array(#5405) (d248a14)
- a11y: automatically switch slides on focus (
Tab) in inactive slides (1288271), closes #3149 - angular: update to angular 13 and enable tsconfig
strict(#5231) (23ee4b3) - autoplay:
autoplayPauseandautoplayResumeevents (aea56ed) - free-mode: stop scrolling when touch event happens in freeMode (80958d5), closes #4616
- react:
useSwiperanduseSwiperSlidecontext hooks (#5364) (18bb89b) - svelte:
swiperandswiperSlidecontext (#5391) (b5c2d3b) - svelte: import index (c91f222), closes #4976 #4975
- virtual: support
rewindfunctionality with Virtual slides (e52de28) - vue:
useSwiperanduseSwiperSlidecontext hooks (987a32e) - new
maxBackfaceHiddenSlidesparam to prevent flicker in Safari (d679a98) - new
maxBackfaceHiddenSlidesparam to prevent flicker in Safari (8c05e6d) - svelte: types for Swiper slot
virtualData(682f56f) - svelte: types for SwiperSlide slot data (1fa70e1), closes #5349
- vue: provide - inject
swiperandswiperSlidecontext (#5377) (f3145b1) - update dom7 to latest (a6b1a47)
7.4.1 (2021-12-24)
- types: fix
rewinddescription (83574e1)
7.4.0 (2021-12-24)
- core: autoHeight shouldn't ignore zero height slides (b3697f1), closes #5281
- pagination: fix dynamic bullets position with
loopenabled (3d377c2), closes #5304
7.3.4 (2021-12-22)
7.3.3 (2021-12-16)
7.3.2 (2021-12-13)
- a11y: add
aria-currentto current bullet (#5258) (b5df68e) - update dom7 and ssr-window to latest (627ca3a)
7.3.1 (2021-11-24)
7.3.0 (2021-11-18)
- docs: property -> properly (#5187) (2824b0c)
- zoom: use only one element to zoom (60a9886), closes #5170
- core: fallback $selector to $wrapperEl if no children exist (#5173) (d8b4ca1)
- types: fixed typo
progressMultipler->progressMultiplier(#5158) (815e837)
7.2.0 (2021-10-27)
7.1.0 (2021-10-25)
- core: centeredSlides won't work when use creative-effect (#5115) (264ca64)
- coverflow effect: interface CoverflowEffectOptions updated. (#5123) (b1c317a)
7.0.9 (2021-10-18)
- core: Change opacityString and scaleString to originalProgress (#5095) (244cc2e)
- vue: fix SwiperSlide types (114fee7), closes #5069
7.0.8 (2021-10-04)
- virtual: improve behavior with cssMode (b478058)
7.0.7 (2021-09-29)
- angular: removed stray setIndex debug code (nolimits4web#5006) (#5007) (59e44ae)
- vue: make
swiperRefnot required in SwiperSlide vue component (#4992) (1cd6af8)
7.0.6 (2021-09-16)
- angular: deprecate
[(index)]andsetIndex()(#4951) (7ee3d58) - effect-creative: fix autoplay by watching all slides transition end (86e6fb6), closes #4961
- types: add missing
cardseffect (#4950) (c18aa08)
7.0.5 (2021-09-09)
- core: don't auto create elements on destroy/init (b4cdea8)
- core: passes
modulesshouldn't extend prototype (f07d43f), closes #4928
7.0.4 (2021-09-08)
- core: fix cssMode animation in Safari 14 (7fd04fe), closes #4925
- virtual: fix Virtual slides in React, Vue & Angular (e80925e), closes #4899
7.0.3 (2021-09-03)
7.0.2 (2021-08-31)
- a11y: fix argments for
initNavEl()method (#4884) (2987700) - core: reset slides size when
slidesPerViewswitches to auto (2c8784b), closes #4881 - description typo (#4887) (d3c4764)
7.0.1 (2021-08-26)
- autoplay: add missing
.start()method (dda14bc), closes #4865 - pagination: check for bullets before destroy (ea06b4c), closes #4859
7.0.0 (2021-08-25)
- angular: container classNames (#4854) (fd092dc)
- angular: demo (9fa84e6)
- angular: try paths for build/types (04b4eae)
- angular: tsignore (9011756)
- types: make loopSlides & loopCreate & loopDestroy internal (d6fdd1b)
- zoom: zoom elements only in
swiper-zoom-container(a4e351f), closes #4847 - keyboard: fix not working keyboard module (31ee849)
- pagination: avoid adding direction classes to other swiper's pagination's (f1c8c89)
- core: prevent
watchOverflowfrom unlocking slidePrev/Next (f1b7397) - scrollbar: fix scrollbar size with
centeredSlides(91f2f2f) - core: fix slide progress in CSS Mode and centered slides (1b0165a)
- core: better handle loop fix with cssMode enabled (ff84073)
- core: fix auto create elements feature with breakpoints (3b50feb)
- components: add
modulesprop (596e2a1) - types: add
modulesparameter (0d599e2) - core: grab cursor to be set based on touchEventsTarget (cffc3aa)
- core: double check for documentElement in smoothScroll detection (ac09e38)
- creative-effect: add
shadowPerProgressparameter (980c4c7) - angular: better typing (e132ee8)
- angular: better typing (6b562fa)
- angular: support 'strictTemplates' flag (613f12c)
- effect-creative: add
progressMultiplieroption (ed3bd7a) - angular: partial ivy build (#4834) (e86b2b3)
- core
swiper-containerclass toswiper(ad8002c) - core
swiper-containerclass toswiper(c763c9c) - core:
watchOverflowis now enabled by default (b97286f) - core: improve
watchOverflowdetection (627ae4c) - creative-effect: add shadows (cce4f23)
- cards-effect: add slide shadow (09666c8)
- cards-effect: new Cards effect (21af858)
- creative-effect: add
limitProgressandperspectiveoptions (1c7d49e) - core: new "Creative" effect (f72f5ba)
- svelte: add Svelte components typings (5a64bdc)
- core: new
slidesPerGroupAutofeature (2b6f133), closes #4168 - coverflow-effect: support cssMode (e13d268)
- fade-effect: support cssMode (18b49cc)
- flip-effect: support cssMode (82859a1)
- pagination: keep pagination styles when it is outside of container (1b11429), closes #3736
- core: better RTL support in CSS Mode (3503ced)
- core: support for
centeredSlidesin CSS Mode (c940953) - core: support for coverflow effect in CSS Mode (8300225)
- core: support for Virtual Slides in CSS Mode (0e26d52)
- core: use easing for custom scroll animation (f40a370)
- zoom: support Zoom in CSS Mode (4639702)
- core:
watchSlidesProgressandwatchSlidesVisibilitymerged into singlewatchSlidesProgress(33dbf62) - core: custom animation for CSS Mode where smooth scrolling is not supported (a61da6a)
- core: remove
isEdgebrowser detection (9c9970c) - core: move slides manipulation methods to Manipulation module (74873f1)
- core: move
slidesPerColumnfunctionality to new Grid module (0f1df44) - core: increase package build target (65f96c1)
- core: tweak browserslist (82a23a5)
- core: convert A11y to functional module (5906115)
- core: convert Autoplay to functional module (ace1e54)
- core: convert FreeMode to functional module (4d307c0)
- core: convert Keyboard to functional module (ed63a3b)
- core: convert Lazy to functional module (8d4f99a)
- core: convert Mousewheel to functional module (1e4bf98)
- core: convert Navigation to functional module (e4aa156)
- core: convert Pagination to functional module (1c718d0)
- core: convert Scrollbar to functional module (96b8b17)
- core: convert Thumbs to functional module (bea5ac2)
- core: convert Virtual to functional module (6899e83)
- core: convert Zoom to functional module (eb1437e)
- core: remove object-syntax modules support (287d14a)
- core:
touchEventsTargetis now default towrapper(71ffcb5), closes #4751 #3816 - core: convert effects to functional modules (b6f64a5)
- core: convert HashNavigation to functional module (ac384c6)
- core: convert History to functional module (7e7c95a)
- core: convert Observer to functional module (a31b80e)
- core: convert Parallax to functional module (a7c26b5)
- core: convert Resize to functional module (133047c)
- core: new functional modules syntax (e45285a)
- core: remove
mouseevents listeners in favor of pointer events (b9254ab) - core: remove MutationObserver support detection (consider it is supported everywhere) (6ed6786)
- core: remove pointerEvents support detection (b7d171b)
- core:
resizeObserveris not enabled by default (552a7ea) - package: use
type: module(e8d89f2) - core: remove CJS formats (3978367)
- core: remove Less and SCSS variables in favor of CSS variables (91e8ea1)
- freeMode: init (#4240) (895da28)
- slidesPerColumn: init (#4508) (c469d29)
6.8.4 (2021-08-23)
- improve typing (b0fb310)
6.8.3 (2021-08-20)
- fix missing package.json in
swiper/types
6.8.2 (2021-08-16)
- core: support tailwind's
!in classes (0cfbc53), closes #4812 - vue: add missing emitted events (enable & disable) into 'emits' option (95665cc)
- vue: fix
focusableElementsprop type (7f1b1b9), closes #4822
6.8.1 (2021-08-03)
- core: reset slides margin-top on
slidesPerColumnbreakpoint (c94a115), closes #4044 - core: fix server side check for
HTMLElement(close #4787) (#4788) (ca4f6b8)
6.8.0 (2021-07-22)
- a11y: count aria-label without duplicated item in loop option (4bd7461), closes #4782 #4781
- angular: nested swiper (#4785) (2be958c)
- core: don't extend html elements in SSR (#4784) (adac257)
- hash-navigation: typos in comments and function name (#4779) (07b8dc3)
- svelte: install modules via
modulecomponent prop (#4768) (ddaa069), closes #4767 - zoom: fix zoom panning in RTL (08bcd05), closes #4074
6.7.5 (2021-07-01)
- lazy: lazy load when no sides resistance enabled (1949a9e), closes #4729
- zoom: compatibility with slidesPerView to zoom only clicked slide (aa1a778), closes #4716
6.7.1 (2021-06-23)
- angular: don't set main
classon wrapper element (1285195), closes #4679 - core: don't extend html elements (#4691) (32ae99b)
- core: unset top margin on slide when
slidesPerColumchanged (1ced4f7), closes #4658 - react: dynamically enable/disable navigation/pagination/scrollbar (d87ac0c), closes #4681
- react: update parallax on Virtual slides rendered (ce210f3), closes #4673
- react, svelte, vue: allow to accept
enabledprop (76dd086), closes #4633 - svelte: dynamically enable/disable navigation/pagination/scrollbar (8711bb9)
- typings: fixed methods definitions for navigation, pagination and scrollbar (77d6909)
- vue: dynamically enable/disable navigation/pagination/scrollbar (4821008)
- vue: update parallax on Virtual slides rendered (b78c6e0)
- core: add ParallaxOptions types (7cc22fe), closes #4684
- core: allow
wrapperClassto be multiple classes (0d578b0), closes #4680 - core: make
focusableElementsconfigurable (6ff0866), closes #4677 - core: use
window.matchMediato detect window width for breakpoints (1a4afe0), closes #4682
6.7.0 (2021-05-31)
- angular: virtual mode run changeDetecton inside ngZone (#4601) (4f37a61)
- lazy: use passive listener for scroll listeners (cbe7a59)
- thumbs: improve thumbs with slidesPerGroup (b2b31b3), closes #3704 #4007 #4615 #4208
- vue: definition for "lock" and "unlock" events (46d35f7), closes #4596
- core: starter html layout can be optional with new
createElements: trueparameter (#4507) (aef2865) - autoplay: if
disableOnInteractionandpauseOnMouseEnter, it will stop autoplay on interaction (e7e5031), closes #4598 - vue: add support for use Swiper as async component (ff53797), closes #4613
6.6.2 (2021-05-19)
- autoplay: fix resume after pause on mouseenter (3d480be), closes #4569
- navigation: better SCSS interpolation (a1337df)
- svelte: auto update Virtual slides on slides prop change (ddf11b8), closes #4564
6.6.1 (2021-05-11)
6.6.0 (2021-05-11)
- core: make autoHeight work with Virtual slides (6925acf), closes #4525
- zoom: don't toggle zoom on slides without zoom-container (e1de61b), closes #4535
- autoplay: new
pauseOnMouseEnterparameter to pause autoplay on mouse enter over container (1a10247), closes #4482 - core: new parameters and methods to enable/disable Swiper dynamically (575bc84), closes #4356 #4311
- react: add the missing render function type (cfa1459)
6.5.9 (2021-04-30)
- angular: custom naviation & pagination (c96bcf6)
- angular: don't remove Swiper styles on destroy (96ad4f0), closes #4443
- angular: extend current params (71be609)
- angular: pagination true should work (434a19c)
- angular: update value (20e25b5)
- build: size calc (769e9df)
- docs: postinstall bakers-> backers typo (839aea4)
- hash-navigation: fixed issue when using with freeMode without transition (c90a7bd), closes #4478
- history: fixed issue when using with freeMode without transition (2902ea9)
- react: load lazy images (if enabled) on children change (ca0347b), closes #4463
- vue: load lazy images (if enabled) on children change (335daff)
- angular: support id input (ad51e32)
- core-js postinstall script (fd5c01d)
- angular: use class & ngClass on
<swiper>component (66c5a55)
6.5.8 (2021-04-23)
- components: fixed issue with navigation, pagination, scrollbar custom elements added after initialization (cfd4efd), closes #4458
- react: make events reactive (301ffb0), closes #3762
- a11y: add
a11y.slideRoleparameter for custom slide role (097109f), closes #4435 - history: new
rootparameter to avoid issues with root path detection (e6d1202), closes #3205
6.5.7 (2021-04-16)
- react: fixed issue with Virtual, Controller and Thumbs when running
React.StrictMode
- core: new
swiper.setProgressmethod to set whole Swiper translate progress (from 0 to 1)
6.5.6 (2021-04-09)
6.5.5 (2021-04-08)
- core: removed Svelte from peerDependencies
- utils: dom not writeable (8775c1a)
6.5.4 (2021-04-05)
- core: fix pagination and a11y classes escaping (49e06f9), closes #4403
- svelte: don't destroy on server-side (8a8fb62), closes #3961
6.5.3 (2021-03-31)
6.5.2 (2021-03-30)
6.5.1 (2021-03-29)
- a11y: correct
aria-roledescriptionattribute name (1b73c3b), closes #4371 - core: fixed proto pollution (ec358de)
- core: fixed proto pollution (9dad273)
- isObject cross window (7c36077)
- isObject cross window (95b5dfe)
- update virtual slides (e33242c)
- core: replace unsupported Object.entries (6dff71d), closes #4341
- core: use
getComputedStylehelper (9698e58), closes #4337
- a11y.slideLabelMessage (9fd6e68)
- custom html element support (f96db02)
- navigation: set
disabledprop on nav element if it is a<button>element (7536fbd), closes #4312
6.5.0 (2021-03-05)
- a11y: space should trigger role button (3d4039b)
- core: correctly update slideIndex when other elements are present in slides wrapper (21e7713)
- core: don't toggle zoom during transition (16f185e), closes #4259
- core: don't try to move slider when it is locked (51fd048), closes #4284
- e2e: initSwiper (9915f8b)
- lazy: fixed issue with lazy loading when freeMode stops without momentum (82bcc5c), closes #4274 #4275
- navigation: don't hide navigation on pagination click (7b7cccf), closes #4285
- pagination: don't hide pagination on navigation click (68b8a93), closes #4285
- svelte: fix Svelte cjs exports (478289c), closes #4297
- components: added "resizeObserver" boolean option/prop to enable ResizeObserver (f03ffbb), closes #4244
- core: added support to use ResizeObserver with new "resizeObserver" parameter (5f80052), closes #4244
- core: possible to enable breakpoints based on container width (instead of window width) (42db86d), closes #4244
- init cypress (6159524)
6.4.15 (2021-02-18)
- angular, vue, svelte: add 'observer', etc. to params-list (8f1cd29)
- core: correctly store class names (02265ec), closes #4247
6.4.14 (2021-02-17)
- svelte: add "observer" params support to props (703ea53)
- vue: add "observer" params support to props (1d37ff7)
- fixed error bundling CJS module (0cda5e4), closes #4242
- react: add 'observer', etc. to params-list (205c14e)
- angular: thumbs & controller support (76acd28)
6.4.12 (2021-02-16)
- angular: autoplay SSR (4f1e9c4)
- angular: don't enable observer when virtual enabled (8810b18)
- angular: virtual SSR (63fed99)
- angular: call swiperRef outside of angular (4e544ef)
6.4.11 (2021-02-06)
- angular: BrowserAnimationsModule slides deletion (fef6ebd)
- react: navigation, pagination and scrollbar is not disabled when #4181 (460787d)
- react: correctly check for virtual params (92c0137)
- react: support SwiperSlider components wrapped in higher order components and fix nested fragments bug #4144
- vue: update virtual slides on nextTick (5208b1a), closes #4172
- svelte/vue navigation, pagination and scrollbar is not disabled when
false#4181 (ffedb6b)
- angular: use observer to update swiper on slides changes (962a0c0)
- angular: use swipers observer (30dd7c9)
6.4.10 (2021-01-29)
- core: don't throw error when trying to init on non existent element (31aa87a)
- core: fixed issue with "scroll container" (c3d0b97), closes #4161
- react: fixed issut with Virtual Slides not working correctly (c24f7ef), closes #4162
- vue: fixed updating virtual slides on virtual data change (5979102)
6.4.9 - Released on January 28th, 2021
- angular: Cannot set property 'classNames' of undefined (13bcf39)
- angular: content slider ngIf (4ca13e4)
- angular: tsconfig path (f2dcf16)
- angular: zoom container custom class (5d4f11c)
- core: disable extra grid item for free mode (9159d89), closes #4010
- docs: change url api -> swiper-api (3dc9203)
- docs: heading levels (e8157e6)
- scrollbar: fixed issue when initialized with empty
scrollbar.elwill throw an error on destroy - svelte: slots container start & end (b23b4e1)
- zoom: consider window scroll for offsets (60cd60a), closes #4039
6.4.8 - Released on January 22th, 2021
- Core
- Improved default behavior on Windows touch screen devices
- Types
- Some docs comments fixes
6.4.7 - Released on January 21th, 2021
- Types
- Added full docs comments for all Swiper parameters
- Angular
- Proper support for zoom functionality with required extra "zoom" element. Can be enabled with
zoomprop on slides, e.g.<ng-template swiperSlide [zoom]="true"> - Fixed issue with SSR
- Fixed issue with not working custom
pagination.el
- Proper support for zoom functionality with required extra "zoom" element. Can be enabled with
6.4.6 - Released on January 20th, 2021
- Core
edgeSwipeDetectionparameter now can receive string'prevent'to prevent system swipe-back navigation- Fixed issue when with decimal
slidesPerViewlast slide never received "active" class/state - Cube
- Fixed shadow rendering issues in Chrome
- React/Svelte/Vue/Angular
- Fixed rendering issue when virtual slides used with breakpoints
- Minor fixes
6.4.5 - Released on December 18th, 2020
- Fixed issue with
postinstallscript
6.4.4 - Released on December 18th, 2020
- Fixed issue with
postinstallscript - Now
.cssfiles are also available for all components - Svelte
- Fixed issue with wrong location of
.sveltefiles in package
- Fixed issue with wrong location of
- Angular
- Types fixes
- Added
[config]support to pass all Swiper params as single object (https://github.com/nolimits4web/swiper/commit/f7d21c5f49860fdca62a31ccb62b01a790fd0df3) - Added
(index)active slide binding (https://github.com/nolimits4web/swiper/commit/86670bd7c1b95268919147662383804e664011a7)
- Minor fixes
6.4.1 - Released on December 9th, 2020
- Fixed types errors introduced in
6.4.0
6.4.0 - Released on December 8th, 2020
- All new Swiper Angular components (kudos to @vltansky) 🎉
- React
- Now Swiper won't cleanup styles on destroy
- Svelte
- Now svelte package contains source
.sveltecomponents - Now Swiper won't cleanup styles on destroy
- Now svelte package contains source
- Vue
- Now Swiper won't cleanup styles on destroy
- Lazy
- Now it has options to check is Swiper also is in view before loading the images (thanks to @ygj6)
- Build
- Fixed sourcemap missing original sources
- Lots of minor fixes
6.3.5 - Released on October 30th, 2020
- Build
- Fixed builds on Windows
- Core
- Fixed no swiping class in shadow component (#3868)
- Typecheck for
slideTo'sindexparameter
6.3.4 - Released on October 20th, 2020
- Vue
- Fixed issue with
Maximum recursive updates
- Fixed issue with
6.3.3 - Released on October 9th, 2020
- Core
- Fixed issue with wrong slides calculation when slides have inner scrollbars
- Autoplay
- Now it will continue autoplay if it reaches the end and new slides will be added later
- React
- Fixed issue when slide render function data was set only after interaction
- Minor fixes
6.3.2 - Released on September 28th, 2020
- Svelte
- Fixed issue with throwing error when using breakpoints
6.3.1 - Released on September 25th, 2020
-
Core
- A11y
- Init module after all other modules initialized
- A11y
6.3.0 - Released on September 25th, 2020
-
Core
- A11y
- Added new parameters
containerMessage,containerRoleDescriptionMessageanditemRoleDescriptionMessage(#3834 thanks to @jenemde)
- Added new parameters
- A11y
-
React
- Now
SwiperSlidecomponent requires uniquevirtualIndexto be set so Swiper can know which slide is rendered exactly
- Now
-
Vue
- Fixed issue when
SwiperSlidewas not rendered if used withv-for - Now
SwiperSlidecomponent requires uniquevirtualIndexto be set so Swiper can know which slide is rendered exactly
- Fixed issue when
-
All new Swiper Svelte components:
<Swiper spaceBetween="{50}" slidesPerView="{3}"> <SwiperSlide>Slide 1</SwiperSlide> <SwiperSlide>Slide 2</SwiperSlide> ... </Swiper> <script> import { Swiper, SwiperSlide } from 'swiper/svelte'; </script>
6.2.0 - Released on September 4rd, 2020
-
All new Swiper Vue.js (v3) components:
<template> <swiper :space-between="50" :slides-per-view="3"> <swiper-slide>Slide 1</swiper-slide> <swiper-slide>Slide 2</swiper-slide> ... </swiper> </template> <script> import { Swiper, SwiperSlide } from 'swiper/vue'; export default { components: { Swiper, SwiperSlide, }, }; </script>
6.1.3 - Released on September 3rd, 2020
- Core
- Pagination
- Now it won't set a11y attributes on customly rendered bullets
- Pagination
- React
- Fixed issue with loop mode and breakpoints not being recalculate slides
6.1.2 - Released on August 17th, 2020
- React
- Fixed issue generating
useLayoutEffectwarning in Next.js - Fixed issue with Virtual List in RTL mode
- Fixed issue generating
6.1.1 - Released on July 31th, 2020
- Fixed ESM/CJS import paths
6.1.0 - Released on July 31th, 2020
- Core
- Mousewheel
- New mousewheel parameters
thresholdDeltaandthresholdTime(#3720)
- New mousewheel parameters
- Fixed issue with Navigation and Pagination
.lessfiles (#3724) - Fixed issue with setting proper
sideEffectscausing some bundlers to not include imported styles (#3708)
- Mousewheel
- React
- Now
SwiperSlideaccepts render function withisActive,isVisible,isPrev,isNext,isDuplicateprops:<Swiper> <SwiperSlide> {({ isActive }) => <div>Current slide is {isActive ? 'active' : 'not active'}</div>} </SwiperSlide> <SwiperSlide>...</SwiperSlide> ... </Swiper>
- Now
- Minor fixes
6.0.4 - Released on July 15th, 2020
- Fixed TS definitions for Swiper React component (#3692)
6.0.3 - Released on July 14th, 2020
- Dom7 updated to latest with correct
__proto__setters/getters
6.0.2 - Released on July 9th, 2020
- React
- Now Swiper will be auto updated if
pagination.el,scrollbar.el,navigation.nextElandnavigation.prevElare passed from later-available refs
- Now Swiper will be auto updated if
6.0.1 - Released on July 7th, 2020
-
Core
- SCSS:Fixed issue with missing
$colorsvar in Navigation and Pagination
- SCSS:Fixed issue with missing
-
React
- Fixed Swiper instance argument typings in event handler props
- Added event handler props definitions for modules events
6.0.0 - Released on July 3rd, 2020
-
New NPM package structure
-
All scripts transpiled to ES5
-
New and renamed files (BREAKING CHANGE):
swiper.less- core Swiper LESSswiper.scss- core Swiper SCSSswiper-bundle.css- Swiper bundle CSSswiper-bundle.js- Swiper bundle JavaScript in UMD formatswiper-bundle.cjs.js- Swiper bundle JavaScript in CommonJS formatswiper-bundle.esm.js- Swiper bundle JavaScript in ESM formatswiper.cjs.js- Swiper core JavaScript in CommonJS formatswiper.esm.js- Swiper core JavaScript in ESM format
-
Following imports are now available
import Swiper from 'swiper'- imports core versionimport Swiper from 'swiper/bundle'- imports bundle versionimport Swiper from 'swiper/core'- imports core version
-
Components can be imported from core version using named imports, or using direct import:
import { Navigation } from 'swiper'; // or import Navigation from 'swiper/components/navigation'; // and styles (Less or SCSS only) import 'swiper/components/navigation/navigation.less';
-
-
Full server-side rendering support (SSR) with new parameters:
userAgent- device user agent, required for some initial detectionurl- required to correctly detect and set initial slide if Hash Navigation or History modules are used
-
New
loopPreventsSlideboolean parameter (by default enabled), that prevents slidePrev/Next transitions while transition is in progress -
Full support for Node.js DOM libraries like JSDOM and Domino
-
Added new
onAny(callback)listener to listen for any swiper event -
All events now emit
swiperinstance as a first argument (BREAKING CHANGE) -
Added official TypeScript definitions
-
Updated to use next generation
dom7andssr-windowlibraries -
All new Swiper React components:
import { Swiper, SwiperSlide } from 'swiper/react'; export default () => { return ( <Swiper spaceBetween={50} slidesPerView={3} onSwiper={(swiper) => console.log(swiper)} onSlideChange={() => console.log('slide change')} > <SwiperSlide>Slide 1</SwiperSlide> <SwiperSlide>Slide 2</SwiperSlide> ... </Swiper> ); };
5.4.5 - Released on June 16th, 2020
- Core
- Fixed issue when checkOverflow method could throw error if Navigation module wasn't installed (#3621)
- Keyboard
- New parameter
pageUpDownto enable/disable pageUp and pageDown keys (enabled by default)
- New parameter
5.4.3 - Released on June 13th, 2020
- Core
- Removed
UIWebViewtext from code - Fixed resize handler calling
slideToto last slide when it shouldn't
- Removed
5.4.2 - Released on June 3rd, 2020
- Mousewheel
- Fixed issue when enabling
forceToAxisalso inverted scrolling
- Fixed issue when enabling
- Coverflow Effect
- Added support for
scaleparameter (#3598)
- Added support for
- Pagination
- Fixed detection of
uniqueNavElements(#3590)
- Fixed detection of
5.4.1 - Released on May 20th, 2020
- Fixed dependencies versions
5.4.0 - Released on May 15th, 2020
- Hash Navigation
- Added
hashChangeandhashSetevents (#3557)
- Added
- Lazy
- Added support for
<picture>lazy loading (#3560)
- Added support for
- Mousewheel
- Potentially improved vertical scrolling issues on Windows/Linux OS
- Updated
ssr-windowanddom7dependencies to latest versions - Minor fixes
5.3.8 - Released on April 24th, 2020
- Core
- Fix iOS bug with double bounce on free mode momentum bounce
- A11y
- Fixed focus ring on navigation buttons (#3544)
- Fixed RegExp issue in
paginationBulletMessage(#3540, #3541)
- Thumbs
- Added
thumbs.autoScrollOffsetparameter that allows to set on what thumbs active slide from edge. It should automatically move scroll thumbs
- Added
- Minor fixes
5.3.7 - Released on April 10th, 2020
- Core
- Fixed
cssModebehavior in RTL layout
- Fixed
- Zoom
- Fixed issue with not working double-tap to toggle with virtual slides
- Minor fixes
5.3.6 - Released on February 29th, 2020
- Core
- Fixed wrong auto height calculation with
centeredSlidesenabled
- Fixed wrong auto height calculation with
- Lazy
- Now it will update auto height (if enabled) on lazy image loaded (#3466)
- Zoom
- Fixed issue when previously active slide could be zoomed with
zoom.in()API (#3451) - Fixed issue when zoom didn't work on
<picture>element (#3456) - Added support for custom zoom-target element by adding
swiper-zoom-targetclass to such elements
- Fixed issue when previously active slide could be zoomed with
- Coverflow Effect
stretchparameter now can be set in%(#3468)
- Minor fixes
5.3.1 - Released on February 8th, 2020
- Core
- Fixed issue when slider could stuck after last slide (#3414)
- Added
labelto list of form events to keep clicks on it (#3407)
5.3.0 - Released on January 11th, 2020
- Core
- New
slidesPerGroupSkipbehavior (#3361) - New ratio-based breakpoints (#3389)
- Added SCSS interpolation (#3373, #3374)
- New
- Mousehweel
- Fixed issue when it can fail on load (#3383)
- Minor fixes
5.2.1 - Released on November 16th, 2019
- Core
- New loop events
beforeLoopFixandloopFix - New parameter
updateOnWindowResize(by defaulttrue) that will update/recalc swiper on window resize/orientationchange - Added SCSS interpolation for
--swiper-theme-colorvariable when not building from source (#3334) - Quote SCSS color names (#3316)
- Fixed issue when
.oncecould be called more than once (#3322)
- New loop events
- Mousewheel
- Fixed scroll wheel unwanted frozen effect (#3328)
- Thumbs
- New
multipleActiveThumbs(by defaulttrue) option to control whether multiple thumbnail slides may get activated or not.
- New
- Minor fixes
5.2.0 - Released on October 26th, 2019
- Core
- New
centeredSlidesBoundsparameter that when enabled will keep first and last slides at bounds - Fixed issue when
freeModecould break position on resize (#2708, #3303) - Fixed transition duration issue with
freeModeSticky(#3302) - Fixed issue with wrong row/column if not full groups (#3294)
- Fixed issue when
watchOverflowandslidesOffsetBefore/slidesOffsetAftercouldn't work together (#3291)
- New
- Mousewheel
- Faster & smoother mousewheel inertial scrolling (#3304)
- Package
- Added source maps to package builds (#3306)
- Added minified version of browser.esm.bundle
- Minor fixes
5.1.0 - Released on October 16th, 2019
- Core
- Fixed issues with touch on iOS 13
- New
translateTomethod #3268
- Pagination
- Improved dynamic bullets behavior when
loop: true#3255
- Improved dynamic bullets behavior when
- Zoom
- Fixed issue with pinch to zoom on Android
- Minor fixes
5.0.4 - Released on September 30th, 2019
- Core
- Now on short swipes over navigation buttons, it will treat it like nav button click (#3237 by @robpop)
- Fixed issue when passing float
slidesPerViewcould break loop mode (#3225 by @robpop)
- Scrollbar
- Fixed issue with wrong "pointer" position calculation on scroll bar tap
- Autoplay
- Fixed issue when it was
pausedafter returning from hidden tab
- Fixed issue when it was
- Minor fixes
5.0.3 - Released on September 19th, 2019
- Core
touchEventsTargetdefaults back tocontainer- Added handling of
touchcancelevent #3219 - Fixed issue with wrong order calculation in
slidesPerColumnFill: 'row'mode - Fixed issue with slides missplacing when prepending slides in virtual mode
- Fixed issue when zoomed image still swiped to another slide on mobiles
5.0.1 - Released on September 17th, 2019
- Core
- Fixed typo in code
5.0.0 - Released on September 17th, 2019
- Core
- All new CSS Scroll Snap mode (can be enabled with
cssMode: true). It doesn't support all of Swiper's features, but potentially should bring a much better performance in simple configurations - Fully removed Internet Explorer support
breakpointsInverseparameter has been removed and nowbreakpointsbehave like withbreakpointsInverse: truebefore.touchMoveStopPropagationparameter now defaults tofalseclickevent won't be fired with 300ms delay anymore. Now it will be fired at the same time astapevent- When
slidesPerColumnFill: 'column'it now usesflex-direction: columnlayout which requires specified height on swiper-container touchEventsTargetnow defaults towrapper(rather thancontainerlike before)slidesPerColumnnow can be used with breakpoints- Now Swiper styles use CSS Custom Properties (CSS Custom Variables) to specify swiper's color theme (color of navigation buttons/pagination). It is now
--swiper-theme-color: #007aff; - Improved
esmodule "tree-shake-ability" - New
swiper.esm.browser.bundle.jspackage that can be used directly in browser (import Swiper from 'swiper.esm.browser.bundle.js')
- All new CSS Scroll Snap mode (can be enabled with
- Autoplay
- Now it will be paused when document becomes hidden (in not active tab) and continued again when document becomes visible
- Lazy
- Swiper preloader image replaced with a little bit simpler loader. Now its color can be changed with
--swiper-preloader-colorCSS custom property (which is defaults to--swiper-theme-color)
- Swiper preloader image replaced with a little bit simpler loader. Now its color can be changed with
- Pagination
- Active pagination bullets and pagination theme colors now use CSS Custom Properties. It can be defined with
--swiper-pagination-colorproperty (which is defaults to--swiper-theme-color)
- Active pagination bullets and pagination theme colors now use CSS Custom Properties. It can be defined with
- Navigation
- Navigation icons reworked with built-in (base64) icon font. It allows to apply any color and size without replacing image
- Navigation buttons colors now use CSS Custom Properties. It can be defined with
--swiper-navigation-colorproperty (which is defaults to--swiper-theme-color) - With
--swiper-navigation-size(defaults to44px) it is now possible to change size of the navigation buttons (and icons)
- Minor fixes and improvements
4.5.1 - Released on September 13th, 2019
- Core
- Fixed issue when callbacks fires on init even if it disabled (#2807)
- Fixed issue when "swiper-slide-visible" class name in some situations shows up when it shouldn't
slidesPerColumnFill: 'row'now considers groups (#3077)
- Thumbs
- Fixes bug 'Cannot read property
indexOfof undefined' that sometimes occurs on use of thumbnails
- Fixes bug 'Cannot read property
- Keyboard
- Added
PageUp/PageDownkeybindings.
- Added
- Autoplay
- Fixed issue when window resize stopped autoplay
- Parallax
- Fixed issue when parallax opacity didn't work (#3147)
- Minor fixes and improvements
4.5.0 - Released on February 22nd, 2019
- Core
- New
swiper.changeDirection()method to change direction from horizontal to vertical (and back) dynamically directionparameter can be used in breakpoints
- New
- Virtual Slides
swiper.virtual.appendSlidenow accepts array of slides to addswiper.virtual.prependSlidenow accepts array of slides to prepend- New
swiper.virtual.removeSlide(indexes)to remove virtual selected slides - New
swiper.virtual.removeAllSlides()to remove all virtual slides
- Navigation
- Now it emits
navigationHideandnavigationShowevents when on nav hide/show
- Now it emits
- Pagination
- Now it emits
paginationHideandpaginationShowevents when on pagination hide/show
- Now it emits
- Dom7 updated to latest 2.1.3
- Fixed issue when
.oncebound event could still be there after unbinding it with.off
- Fixed issue when
- Source
- Source styles are now available in SCSS in addition to LESS
- Minor fixes and improvements
4.4.6 - Released on December 19th, 2018
- Core
- Fixed issue with wrong slide size calculation in some cases
4.4.5 - Released on December 14th, 2018
- Core
- New
observeSlideChildrenparameter to enable auto update on slide children update - Fixed issue when slide padding was not considered when calculating sizes
- Fixed issue with wrong touch support detection on Windows Chrome
- Fixed some issues with wrong slides grid calculation in multi row mode
- New
- Zoom
- Now it emits
zoomChangeevent withscale,imageElandslideElarguments
- Now it emits
- Minor fixes
4.4.2 - Released on November 1st, 2018
- New
touchStartForcePreventDefaultparameter to force touch start event prevent default - Breakpoints fix when breakpoint keys are strings
- Fixed issue when draggable scrollbar may not work on desktop Safari
- Fixed issue with wrong sort of Virtual Slides
- Minor fixes
4.4.1 - Released on September 14th, 2018
- Fixed issue with preventing touchstart event
4.4.0 - Released on September 14th, 2018
- Core
- New
centerInsufficientSlidesparameter to center slides if the amount of slides less thanslidesPerView - New
breakpointsInverseparameter (boolean), if enabled then it will count breakpoints in reversed direction, e.g. will override parameters if window width is more than specified breakpoint
- New
- Virtual Slides
- New
addSlidesBeforeandaddSlidesAfterparameters to increase amount of pre-rendered slides
- New
- Thumbs
- All new "Thumbs" module/component designed to control slider thumbnails, in more logical and correct way than with Controller module.
- Lots of minor fixes
4.3.5 - Released on July 31th, 2018
- Core
iOSEdgeSwipeThresholdparameter renamed to justedgeSwipeThreshold. OldiOSEdgeSwipeThresholdname is still supported- Improved observer performance if there are many mutations at a time. Thanks to @rayvincent-bsd
- Controller
- Fixed issue with wrong auto height resizing
- Scrollbar
- Fixed issue when it was using active event listeners instead of passive. Thanks to @nyon
- Minor fixes
4.3.3 - Released on June 5th, 2018
- Core
- Fixed issue when slidePrev goes to wrong slide #2650
- Fixed issue when roundLength was not considered for grids calculation #2656
- Fixed typo in API #2659
4.3.2 - Released on June 1st, 2018
- Core
- Added
addSlide(index, slide)method to add slide at required position. Thanks to @kochizufan - Fixed issue with loop #2647. Thanks to @kochizufan
- Added
- Pagination
- New
formatFractionCurrent(number)parameter to format current number in Fraction pagination - New
formatFractionTotal(number)parameter to format total number in Fraction pagination
- New
- Minor fixes
4.3.0 - Released on May 27th, 2018
- Core
- Fixed issue when
swipeBacksometimes slides to wrong slide - Fixed issue when window resizing can break Coverflow effect layout
- Fixed issue with wrong detection of
iOSEdgeSwipeDetection. Thanks to @langjun
- Fixed issue when
- Dom7 update to latest v2.0.6:
- Fixed issue with remove event listeners when they was not added
- Minor fixes
4.2.6 - Released on May 1st, 2018
console.logcleanup
4.2.5 - Released on April 29th, 2018
- Core
- Prevent apply grab cursor when swiper is locked
- Fixed breakpoint with loop getting wrong realIndex when on init
- Fixed "transformed" slides sizes calculation that could cause issues in with Coverflow effect
- Autoplay
- Fixed issue that can cause memory leak
- Dom7 update to latest
- Improved internal events proxies logic for better memory management
- Minor fixes
4.2.2 - Released on April 1st, 2018
- Core
- Respect and update breakpoints when calling Swiper's
.update()method
- Respect and update breakpoints when calling Swiper's
- Pagination
- New
progressbarOppositeparameter to make pagination progressbar opposite todirectionparameter, means vertical progressbar for horizontal swiper direction and horizontal progressbar for vertical swiper direction
- New
- Mousewheel
- Fixed issue in
loop+freeModefor loop not being set correctly
- Fixed issue in
- Minor fixes
4.2.0 - Released on March 16th, 2018
- Core
swiper.updateAutoHeight(speed)now supportsspeedparameter to resize swiper wrapper with duration- Fixed issues in free mode with
freeModeStickynot being able to snap to closest snap point - New
swiper.slideToClosest()method to slide to closest snap point when it is somewhere in between
- A11y (Accessibility)
- It is now enabled by default (if installed)
- Controller
- Fixed RTL issue when vertical swiper controls horizontal one
- Lazy
- Fixed issue when lazy loading not always triggered on window resize
- Minor fixes
4.1.6 - Released on February 11th, 2018
- Fixed onTouchMoveOpposite event on touch devices
4.1.5 - Released on February 10th, 2018
- Improved touch events support on desktop Windows devices with touch screen
- Improved "loop fix" when slider is in the free mode
- New
noSwipingSelectorparameter that can be used instead ofnoSwipingClass - New
preventIntercationOnTransitionparameter to prevent interaction during slice change transition - New
.slideToLoopmethod to be used in loop mode - Fixed issue with
slideChangeevents being fired when slide wasn't actually changed - Scrollbar
- Now doesn't require to enable
simulateTouchfor desktops when it isdraggable
- Now doesn't require to enable
- Keyboard
- Fixed detection statement whether a swiper is in the viewport
- Pagination
- Added new multiple main bullets support for dynamic bullets pagination
- Zoom
- Now supports Virtual Slides
- Minor fixes
4.1.0 - Released on January 13th, 2018
- Improved IE 10 support. But it is recommended to use proto polyfill
- Improved touch support for Edge
- New
watchOverflow(disabled by default). When enabled Swiper will be disabled and hide navigation buttons on case there are not enough slides for sliding - Autoplay
- New
reverseDirectionto enable autoplay in reverse direction - New
waitForTransitionparameter when autoplay will wait for wrapper transition to continue (enabled by default). Can be disabled in case of using Virtual Translate when your slider may not have transition
- New
- Keyboard
- New
onlyInViewportparameter (enabled by default). When enabled it will control sliders that are currently in viewport
- New
4.0.7 - Released on November 28th, 2017
- Fixed issue with not working correctly
touchReleaseOnEdgeson iOS - Fixed issue with not working allowSlideNext/Prev change on Breakpoints
- Fixed wrong scrollbar dragging when using custom
dragSize - Minor fixes
4.0.6 - Released on November 13th, 2017
- Fixed Coverflow effect issue using with breakpoints
iOSEdgeSwipeDetectionwill also be in consideration with right-edge swipe- Fixed
freeModeStickybehavior in RTL mode - Swiper now emits
breakpointevent on breakpoint change - Minor fixes
4.0.5 - Released on November 7th, 2017
- Fixed issue with not working
noSwipingparameter - Parallax now considers
slidesPerGroupparameter - Zoom: improved gestures handling
- Pagination: fixed issues with wrong positioned dynamic-bullets when there are not enough slides
- Fixed issues with some effects being broken with enabled
breakpoints - Minor fixes
4.0.3 - Released on October 27th, 2017
- Fixed Parallax opacity and scale transitions
- Better compatability with SSR by using dummy
documentobject - Fixed styles for dynamic pagination buttons in RTL mode
- Fixed issue with last pagination button not being active with
slidesPerView: 'auto' - Renamed build tasks:
build-dev->build:dev,build-prod->build:prod
4.0.2 - Released on October 18th, 2017
- Lazy loading support for Virtual slides
- Added
beforeResizeevent - Minor fixes
4.0.1 - Released on October 11th, 2017
- Fixed issue with pagination being broken with loop mode
- Reworked
realIndexcalculation ordering - ES-module files renamed (possible breaking change):
swiper.module.js->swiper.esm.bundle.js(exported by default)swiper.modular.js->swiper.esm.js
- Minor fixes
4.0.0 - Released on October 4th, 2017 🎉
- New API (check Documentation)
- Virtual Slides - new module that keeps in DOM just required amount of slides
- Source code has been fully rewritten in ES-next syntax
- Dist package contains additional ES-next modules:
swiper.module.js- swiper bundle forimport Swiper from 'swiper'swiper.modular.js- modular version for using Swiper with required components only
- New
scripts/build-config.jsfor creating custom Swiper build with required components and custom color theme - jQuery version of Swiper has been removed
- Improved compatibility with server-side rendering
- Hundreds of improvements and fixes
- Fixed issue with draggable Scrollbar in RTL layout
- Minor fixes
- Dom7 update to latest version
- Small core refactoring to get better results within tree-shaking bundles
- Disable a11y by default
- Fixed issue with events sharing between multiple swipers
- Fixed issue with resize handling after destroy
- Few minor fixes
- Initial 4.0.0 release
- Fixed an issue with lazy loading callbacks when swiper is destroyed
- New
onAfterResizeandonBeforeResizecallbacks - New
onKeyPresscallback when keyboard control is used - Fixed Chrome+Windows issue with not clickable links that have "title" attribute
- Minor fixes
- Fixed Zoom for RTL
- Improved slideToClickedSlide behavior when loop is enabled
- Minor fixes
- Custom build available. Now you can create custom swiper build using the folowing modules: effects, lazy-load, scrollbar, controller, hashnav, history, keyboard, mousewheel, parallax, zoom, a11y. Using cli
gulp custom -zoom,effects,lazy-loading - New zoom functionality that enables double tap and pinch to zoom slide's inner image:
- Required slide layout for zoom:
<div class="swiper-slide"> <div class="swiper-zoom-container"> <img src="path/to/image"> </div> </div> - New zoom parameters:
zoom- enable zoom functionalityzoomMax- maximum image zoom multiplier, by default is3zoomMin- minimum image zoom multiplier, by default is1zoomToggle- enable/disable zoom-in by slide's double tap
zoomMaxcan be also overridden for specific slide by usingdata-swiper-zoomattribute
- Required slide layout for zoom:
- New
swiper.enableTouchControl()andswiper.disableTouchControl()methods to enable disable touch control (it togglesonlyExternalparameter) - New
swiper.realIndexproperty in addition toswiper.activeIndexthat returns index of active slide considering loop - New History API with new
historyparameter. It uses history pushState to set active slide URL - New
hashnavWatchStateparameter to navigate through slides (when hashnav is enabled) by browser history or by setting directly hash on document location - New
replaceStateparameter that work in addition to hashnav or history to replace current url state with the new one instead of adding it to history - New methods
s.unsetGrabCursor()ands.setGrabCursor()to enable/disable grab cursor - Draggable Scrollbar now works when
simulateTouch:false - New
normalizeSlideIndexparameter to improve work of controller (see #1766) lazyLoadingInPrevNextAmountnow works withslidesPerView: 'auto'- New
passiveListenersparameter to use passive event listeners to improve scrolling performance on mobile devices. Enabled by default - New
freeModeMomentumVelocityRatioparameter to control moment velocity - Now it is possible to specify autoplay delay for every (or specific) slides by using
data-swiper-autoplayattribute on them - Lazy loading now also respects
sizesresponsive images attribute - Improved mousewheel cross browser behavior (see #1797)
- New
mousewheelEventsTargedparameter (by default 'container') where you can specify mousewheel events target - New
onScrollevent/callback that triggers when swiping/scrolling happens with mousewheel - New
touchReleaseOnEdgesparameter to release touch events on slider edge position (beginning, end) and allow for further page scrolling - Multirow (slidesPerColumn) support for vertical direction, which is in this case becomes multicolumn
paginationBulletRendernow acceptsswiperinstance as a first argument,paginationBulletRender(index, className)->paginationBulletRender(swiper, index, className)- New "swiper-slide-duplicate-active", "swiper-slide-duplicate-next", "swiper-slide-duplicate-prev" classes that will be added in loop mode to the slides representing duplicated looped slides
- All css classes are now configurable via new parameters: lazyLoadingClass, notificationClass, containerModifierClass, paginationClickableClass, paginationModifierClass, lazyStatusLoadingClass, lazyStatusLoadedClass, lazyPreloaderClass, notificationClass, preloaderClass, zoomContainerClass, slideDuplicateActiveClass, slideDuplicateNextClass, slideDuplicatePrevClass
- New
uniqueNavElementsparameter. If enabled (by default) and navigation elements' parameters passed as the string (like.pagination) then Swiper will look for such elements through child elements first. Applies for pagination, prev/next buttons and scrollbar - New
onPaginationRenderedcallback. Will be fired after pagination elements generated and added to DOM - New
.reLoop()method, which combines.destroyLoop()+.createLoop()methods with additional positioning fixes. Useful to call after you have changedslidesPerViewparameter, it will dynamically recreate duplicated slides required for loop - New
.nextButtonand.prevButtonproperties with Dom7/jQuery element with next/prev button HTML element - Fixed not working mousewheel control in IE 11
- Fixed issue with lazy loading images not being recalculated after window resize
- Fixed issues when using loop with breakpoints changing
slidesPerView/Groupparameters - Numerous minor fixes
- New 3D Flip effect. Can be enabled with `effect: 'flip' parameter
- New types of pagination with new parameters:
paginationType- type of pagination. Can be'bullets'(default) or'fraction'or'progress'or'custom'paginationFractionRender(swiper, currentClass, totalClass)- custom function to render "fraction" type paginationpaginationProgressRender(swiper, progressbarClass)- custom function to render "progress" type paginationpaginationCustomRender(swiper, current, total)- custom function to render "custom" type pagination
- New
lazyLoadingInPrevNextAmountparameter allows to lazy load images in specified amount of next/prev slides - New
autoplayStopOnLastparameter (trueby default) tells to autoplay should it stop on last slide or start from first slide - New
onAutoplay(swiper)callback - Minor fixes
- Fixed issue with using HTMLElements for next/prevButton parameters with breakpoints
- Fixed issue with not working Auto Height when using Controller
- Fixed issue in RTL layout using
mousewheelControl - Fixed issue in RTL layout using Parallax
- New "Auto Height" mode when container/wrapper adapts to the height of currently active slide. Can be enabled with
autoHeight: trueparameter - Fixed issue with breakpoints in Firefox
- Fixed issue with wrong slides position when using effects
- Fixed issue with none-updated scroll bar after using
setWrapperTranslate - Minor fixes
-
Added responsive breakpoints support using new
breakpointsparameter. Now you can specify differentslidesPerViewand other similar parameters for different sizes:slidesPerView: 5, spaceBetween: 50, breakpoints: { 1024: { slidesPerView: 4, spaceBetween: 40 }, 768: { slidesPerView: 3, spaceBetween: 30 }, 320: { slidesPerView: 1, spaceBetween: 10 } }
-
New callbacks:
onSlideNextStart,onSlideNextEnd,onSlidePrevStart,onSlidePrevEnd -
Added Meteor package
meteor add nolimits4web:swiper -
Fixed issue with mouse touchMove/End callbacks firing all the time
-
Fixed issue with mousewheel in Chrome
-
Minor fixes
- Fixed issue with lazy loading trying to download
undefined-src images - Fixed lazy loading on slides using jQuery version
- Fixed issue with
slideToClickedSlidewithloopandcenteredSlides - Fixed issue with wrong slides fill when number of slides less than
slidesPerView * slidesPerColumnwithslidesPerColumnFill: 'row' - Minor fixes
- Added support for images
srcsetwith lazy loading usingdata-srcsetattribute - Fixed new Chrome errors with
WebkitCSSMatrix - Fixed issue with
slideToClickedSlidewithloopandcenteredSlides - New
freeModeMinimumVelocityparameter to set minimum required touch velocity to trigger free mode momentum - Ability to make the Scrollbar draggable using new paramaters:
scrollbarDraggable- (boolean) by default isfalse. Allows to enable draggable scrollbarscrollbarSnapOnRelease- (boolean) by default isfalse. Control slider snap on scrollbar release
- Minor fixes
- Fixed issues with loop and mousewheel when swiper stopped on last slide
- Improved mouse wheel behavior in latest Chrome
- Fixed issue with
slidesPerView: 'auto'and enabledloop:truemode to setloopedSlidesto the amount of slides by default (if not specified) - New
mousewheelSensitivity: 1parameter allows to tweak mouse wheel sensitivity - Fixed issue with updating swiper when swiping is locked (with
allowSwipeToNext/allowSwipeToPrev) - Fixed issue with wrong calculating of "visible" slides with enabled
centeredSlides - CSS fixes for 3D effects
- New options to release Swiper events for swipe-to-go-back work in iOS UIWebView with two options:
iOSEdgeSwipeDetection(by default isfalse) - enable ios edge detection and release Swiper eventsiOSEdgeSwipeThreshold(default value is20) - area inpxfrom left edge of screen to release events
- Improved source maps
- Minor fixes
- Accessibility (a11y)
- Fixed issue with wrong buttons labels
- Added support for pagination bullets
- New accessibility parameter for pagination label
paginationBulletMessage: 'Go to slide {{index}}'
- Controller
- New parameter
controlBywhich can be 'slide' (by default) or 'container'. Defines a way how to control another slider: slide by slide or depending on all slides/container (like before) - Now controllers in
controlBy: 'slide'(default) mode will respect grid of each other
- New parameter
- Pagination
- New
paginationElementparameter defines which HTML tag will be used to represent single pagination bullet. By default it isspan
- New
- New
roundLengthsparameter (by default isfalse) to round values of slides width and height to prevent blurry texts on usual resolution screens - New
slidesOffsetBefore: 0andslidesOffsetAfter: 0(in px) parameters to add additional slide offset within a container - Correct calculation for slides size when use CSS padding on
.swiper-container - Fixed issue with not working onResize handler when swipes are locked
- Fixed issue with "jumping" effect when you disable
onlyExternalduring touchmove - Fixed issue when slider goes to previous slide from last slide after window resize
- Added new
swiper.jquery.umd.jsversion for the environment where both Swiper and jQuery included as modules - Minor fixes
- Fixed issue with wrong active index and callbacks in Fade effect
- New mousewheel parameters:
mousewheelReleaseOnEdges- will release mousewheel event and allow page scrolling when swiper is on edge positions (in the beginning or in the end)mousewheelInvert- option to invert mousewheel slides
- Fixed issue with lazy loading in next slides when
slidesPerView> 1 - Fixed issue with resistance bounds when swiping is locked
- Fixed issue with wrong slides order in multi-row mode (when
slidesPerColumn> 1) - Fixed issue with not working keyboard control in RTL mode
- Fixed issue with nested fade-effect swipers
- Minor fixes
- New
widthandheightparameters to force Swiper size, useful when it is hidden on intialization - Better support for "Scroll Container". So now Swiper can be used as a scroll container with one single "scrollable"/"swipeable" slide
- Added lazy loading for background images with
data-backgroundattribute on required elements - New "Sticky Free Mode" (with
freeModeStickyparameter) which will snap to slides positions in free mode - Fixed issues with lazy loading
- Fixed slide removing when loop mode is enabled
- Fixed issues with Autoplay and Fade effect
- Minor fixes
- Fixed sometimes wrong slides position when using "Fade" effect
.destroy(deleteInstance, cleanupStyles)method now has secondcleanupStylesargument, when passed - all custom styles will be removed from slides, wrapper and container. Useful if you need to destroy Swiper and to init again with new options or in different direction- Minor fixes
- New Keyboard accessibility module to provide focusable navigation buttons and basic ARIA for screen readers with new parameters:
a11y: false- enable accessibilityprevSlideMessage: 'Previous slide'- message for screen readers for previous buttonnextSlideMessage: 'Next slide'- message for screen readers for next buttonfirstSlideMessage: 'This is the first slide'- message for screen readers for previous button when swiper is on first slidelastSlideMessage: 'This is the last slide'- message for screen readers for next button when swiper is on last slide
- New Emitter module. It allows to work with callbacks like with events, even adding them after initialization with new methods:
.on(event, handler)- add event/callback.off(event, handler)- remove this event/callback.once(event, handler)- add event/callback that will be executed only once
- Plugins API is back. It allows to write custom Swiper plugins
- Better support for browser that don't support flexbox layout
- New parameter
setWrapperSize(be default it isfalse) to provide better compatibility with browser without flexbox support. Enabled this option and plugin will set width/height on swiper wrapper equal to total size of all slides - New
virtualTranslateparameter. When it is enabled swiper will be operated as usual except it will not move. Useful when you may need to create custom slide transition - Added support for multiple Pagination containers
- Fixed
onLazyImage...callbacks - Fixed issue with not accessible links inside of Slides on Android < 4.4
- Fixed pagination bullets behavior in loop mode with specified
slidesPerGroup - Fixed issues with clicks on IE 10+ touch devices
- Fixed issues with Coverflow support on IE 10+
- Hashnav now will update document hash after transition to prevent browsers UI lags, not in the beginning like before
- Super basic support for IE 9 with swiper.jquery version. No animation and transitions, but basic stuff like switching slides/pagination/scrollbars works
- New Images Lazy Load component
- With new parameters
lazyLoading,lazyLoadingInPrevNext,lazyLoadingOnTransitionStart(all disabled by default) - With new callbacks
onLazyImageLoadandonLazyImageReady
- With new parameters
updateOnImagesready split into 2 parameters:preloadImages(by default is true) - to preload all images on swiper initupdateOnImages(by default is true) - update swiper when all images loaded
- Fixed issues with touchmove on focused form elements
- New
onObserverUpdatecallback function to be called after updates by observer - Fixed issue with not working inputs with keyboard control for jQuery version
- New
paginationBulletRenderparameter that accepts function which allow custom pagination elements layout - Hash Navigation will run callback depending on
runCallbacksOnInitparameter watchVisibilityparameter renamed towatchSlidesVisibility
- Fixed issue with not firing onSlideChangeEnd callback after calling .slideTo with runCallbacks=false
- Fixed values of isBeginning/isEnd when there is only one slide
- New
crossFadeoption for fade effect - Improved support for devices with both touch and mouse inputs, not yet on IE
- Fixed not correctly working mousewheel and keyobard control in swiper.jquery version
- New parallax module for transitions with parallax effects on internal elements
- Improved .update and .onResize methods
- Minor fixes
- Fixed issue with keyboard events not cleaned up with Swiper.destroy
- Encoded inline SVG images for IE support
- New callbacks
- onInit (swiper)
- onTouchMoveOpposite (swiper, e)
- Fixed free mode momentum in RTL layout
.updatemethod improved to fully cover whatonResizedo for full and correct update- Exposed
swiper.touchesobject with the following properties:startX,startY,currentX,currentY,diff - New methods to remove slides
.removeSlide(index)or.removeSlide([indexes])- to remove selected slides.removeAllSlides()- to remove all slides
- Fixed issue with navigation buttons in Firefox in loop mode
- Fixed issue with image dragging in IE 10+
- Initial release of all new Swiper 3
- Removed features
- Dropped support for old browsers. Now it is compatible with:
- iOS 7+
- Android 4+ (multirow mode only for Android 4.4+)
- Latest Chrome, Safari, Firefox and Opera desktop browsers
- WP 8+, IE 10+ (3D effects may not work correctly on IE because of wrong nested 3D transform support)
- Scroll Container. Removed in favor of pure CSS
overflow: autowith-webkit-overflow-scrolling: touch
- Dropped support for old browsers. Now it is compatible with:
- New features
- Swiper now uses modern flexbox layout, which by itself give more features and advantages
- Such Swiper 2.x plugins as Hash Navigation, Smooth Progress, 3D Flow and Scrollbar are now incorporated into Swiper 3.x core
- Full RTL support
- Built-in navigation buttons/arrows
- Controller. Now one Swiper could be controlled (or control itself) by another Swiper
- Multi row slides layout with
slidesPerColumnoption - Better support for nested Swipers, now it is possible to use same-direction nested Swipers, like horizontal in horizontal
- Space between slides
- New transition effects: 3D Coverflow, 3D Cube and Fade transitions
- Slides are
border-boxnow, so it is possible to use borders and paddings directly on slides - Auto layout mode (
slidesPerView: 'auto') now gives more freedom, you can even specify slides sizes in % and use margins on them - Mutation Observers. If enabled, Swiper will watch for changes in Dom and update its layout automatically
- Better clicks prevention during swiping
- Many of API methods, parameters and callbacks are changed
- Added a bit lightweight jQuery/Zepto version of Swiper that can be used if you use jQuery/Zepto in your project