Options
All
  • Public
  • Public/Protected
  • All
Menu

Hierarchy

  • SwiperOptions

Index

Properties

Methods

Properties

Optional _emitClasses

_emitClasses: boolean

!INTERNAL When enabled will emit "_containerClasses" and "_slideClass" events

Optional a11y

a11y: any

Object with a11y parameters or boolean true to enable with default settings.

example
const swiper = new Swiper('.swiper', {
  a11y: {
    prevSlideMessage: 'Previous slide',
    nextSlideMessage: 'Next slide',
  },
});

Optional allowSlideNext

allowSlideNext: boolean

Set to false to disable swiping to next slide direction (to right or bottom)

default

true

Optional allowSlidePrev

allowSlidePrev: boolean

Set to false to disable swiping to previous slide direction (to left or top)

default

true

Optional allowTouchMove

allowTouchMove: boolean

If false, then the only way to switch the slide is use of external API functions like slidePrev or slideNext

default

true

Optional autoHeight

autoHeight: boolean

Set to true and slider wrapper will adapt its height to the height of the currently active slide

default

false

Optional autoplay

autoplay: any

Object with autoplay parameters or boolean true to enable with default settings

example
const swiper = new Swiper('.swiper', {
 autoplay: {
   delay: 5000,
 },
});

Optional breakpoints

breakpoints: {}

Allows to set different parameter for different responsive breakpoints (screen sizes). Not all parameters can be changed in breakpoints, only those which do not require different layout and logic, like slidesPerView, slidesPerGroup, spaceBetween, grid.rows. Such parameters like loop and effect won't work

example
const swiper = new Swiper('.swiper', {
  // Default parameters
  slidesPerView: 1,
  spaceBetween: 10,
  // Responsive breakpoints
  breakpoints: {
    // when window width is >= 320px
    320: {
      slidesPerView: 2,
      spaceBetween: 20
    },
    // when window width is >= 480px
    480: {
      slidesPerView: 3,
      spaceBetween: 30
    },
    // when window width is >= 640px
    640: {
      slidesPerView: 4,
      spaceBetween: 40
    }
  }
})
example
const swiper = new Swiper('.swiper', {
  slidesPerView: 1,
  spaceBetween: 10,
  // using "ratio" endpoints
  breakpoints: {
    '@0.75': {
      slidesPerView: 2,
      spaceBetween: 20,
    },
    '@1.00': {
      slidesPerView: 3,
      spaceBetween: 40,
    },
    '@1.50': {
      slidesPerView: 4,
      spaceBetween: 50,
    },
  }
});

Type declaration

Optional breakpointsBase

breakpointsBase: "container" | "window"

Base for breakpoints (beta). Can be window or container. If set to window (by default) then breakpoint keys mean window width. If set to container then breakpoint keys treated as swiper container width

default

'window'

Optional cardsEffect

cardsEffect: any

Object with Cards-effect parameters

example
const swiper = new Swiper('.swiper', {
  effect: 'cards',
  cardsEffect: {
    // ...
  },
});

Optional centerInsufficientSlides

centerInsufficientSlides: boolean

When enabled it center slides if the amount of slides less than slidesPerView. Not intended to be used loop mode and grid.rows

default

false

Optional centeredSlides

centeredSlides: boolean

If true, then active slide will be centered, not always on the left side.

default

false

Optional centeredSlidesBounds

centeredSlidesBounds: boolean

If true, then active slide will be centered without adding gaps at the beginning and end of slider. Required centeredSlides: true. Not intended to be used with loop or pagination

default

false

Optional containerModifierClass

containerModifierClass: string

The beginning of the modifier CSS class that can be added to swiper container depending on different parameters

default

'swiper-'

Optional controller

controller: any

Object with controller parameters or boolean true to enable with default settings

example
const swiper = new Swiper('.swiper', {
  controller: {
    inverse: true,
  },
});

Optional coverflowEffect

coverflowEffect: any

Object with Coverflow-effect parameters.

example
const swiper = new Swiper('.swiper', {
  effect: 'coverflow',
  coverflowEffect: {
    rotate: 30,
    slideShadows: false,
  },
});

Optional createElements

createElements: boolean

When enabled Swiper will automatically wrap slides with swiper-wrapper element, and will create required elements for navigation, pagination and scrollbar they are enabled (with their respective params object or with boolean true))

default

false

Optional creativeEffect

creativeEffect: any

Object with Creative-effect parameters

example
const swiper = new Swiper('.swiper', {
  effect: 'creative',
  creativeEffect: {
    prev: {
      // will set `translateZ(-400px)` on previous slides
      translate: [0, 0, -400],
    },
    next: {
      // will set `translateX(100%)` on next slides
      translate: ['100%', 0, 0],
    },
  },
});

Optional cssMode

cssMode: boolean

When enabled it will use modern CSS Scroll Snap API. It doesn't support all of Swiper's features, but potentially should bring a much better performance in simple configurations.

This is what is not supported when it is enabled:

  • Cube effect
  • speed parameter may not have no effect
  • All transition start/end related events (use slideChange instead)
  • slidesPerGroup has limited support
  • simulateTouch doesn't have effect and "dragging" with mouse doesn't work
  • resistance doesn't have any effect
  • allowSlidePrev/Next
  • swipeHandler

In case if you use it with other effects, especially 3D effects, it is required to wrap slide's content with <div class="swiper-slide-transform"> element. And if you use any custom styles on slides (like background colors, border radius, border, etc.), they should be set on swiper-slide-transform element instead.

example
<div class="swiper">
  <div class="swiper-wrapper">
    <div class="swiper-slide">
      <!-- wrap slide content with transform element -->
      <div class="swiper-slide-transform">
        ... slide content ...
      </div>
    </div>
    ...
  </div>
</div>
<script>
const swiper = new Swiper('.swiper', {
   effect: 'flip',
   cssMode: true,
 });
</script>
default

false

Optional cubeEffect

cubeEffect: any

Object with Cube-effect parameters

example
const swiper = new Swiper('.swiper', {
  effect: 'cube',
  cubeEffect: {
    slideShadows: false,
  },
});

Optional direction

direction: "horizontal" | "vertical"

Can be 'horizontal' or 'vertical' (for vertical slider).

default

'horizontal'

Optional edgeSwipeDetection

edgeSwipeDetection: string | boolean

Enable to release Swiper events for swipe-back work in app. If set to 'prevent' then it will prevent system swipe-back navigation instead. This feature works only with "touch" events (and not pointer events), so it will work on iOS/Android devices and won't work on Windows devices with pointer (touch) events.

default

false

Optional edgeSwipeThreshold

edgeSwipeThreshold: number

Area (in px) from left edge of the screen to release touch events for swipe-back in app

default

20

Optional effect

effect: string

Transition effect. Can be 'slide', 'fade', 'cube', 'coverflow', 'flip', 'creative' or 'cards'

default

'slide'

Optional enabled

enabled: boolean

Whether Swiper initially enabled. When Swiper is disabled, it will hide all navigation elements and won't respond to any events and interactions

default

true

Optional eventsPrefix

eventsPrefix: string

Event name prefix for all DOM events emitted by Swiper Element (web component)

default

swiper

Optional fadeEffect

fadeEffect: any

Object with Fade-effect parameters

example
const swiper = new Swiper('.swiper', {
  effect: 'fade',
  fadeEffect: {
    crossFade: true
  },
});

Optional flipEffect

flipEffect: any

Object with Flip-effect parameters

example
const swiper = new Swiper('.swiper', {
  effect: 'flip',
  flipEffect: {
    slideShadows: false,
  },
});

Optional focusableElements

focusableElements: string

CSS selector for focusable elements. Swiping will be disabled on such elements if they are "focused"

default

'input, select, option, textarea, button, video, label'

Optional followFinger

followFinger: boolean

If disabled, then slider will be animated only when you release it, it will not move while you hold your finger on it

default

true

Optional freeMode

freeMode: any

Enables free mode functionality. Object with free mode parameters or boolean true to enable with default settings.

example
const swiper = new Swiper('.swiper', {
  freeMode: true,
});

const swiper = new Swiper('.swiper', {
  freeMode: {
    enabled: true,
    sticky: true,
  },
});

Optional grabCursor

grabCursor: boolean

This option may a little improve desktop usability. If true, user will see the "grab" cursor when hover on Swiper

default

false

Optional grid

grid: any

Object with grid parameters to enable "multirow" slider.

example
const swiper = new Swiper('.swiper', {
  grid: {
    rows: 2,
  },
});

Optional hashNavigation

hashNavigation: any

Enables hash url navigation to for slides. Object with hash navigation parameters or boolean true to enable with default settings

example
const swiper = new Swiper('.swiper', {
  hashNavigation: {
    replaceState: true,
  },
});

Optional height

height: null | number

Swiper height (in px). Parameter allows to force Swiper height. Useful only if you initialize Swiper when it is hidden and in SSR and Test environments for correct Swiper initialization

default

null

note

Setting this parameter will make Swiper not responsive

Optional history

history: any

Enables history push state where every slide will have its own url. In this parameter you have to specify main slides url like "slides" and specify every slide url using data-history attribute.

Object with history navigation parameters or boolean true to enable with default settings

example
const swiper = new Swiper('.swiper', {
  history: {
    replaceState: true,
  },
});
example
<!-- will produce "slides/slide1" url in browser history -->
<div class="swiper-slide" data-history="slide1"></div>

Optional init

init: boolean

Whether Swiper should be initialised automatically when you create an instance. If disabled, then you need to init it manually by calling swiper.init()

default

true

Optional initialSlide

initialSlide: number

Index number of initial slide.

default

0

Optional injectStyles

injectStyles: string[]

Inject text styles to the shadow DOM. Only for usage with Swiper Element

Optional injectStylesUrls

injectStylesUrls: string[]

Inject styles <link>s to the shadow DOM. Only for usage with Swiper Element

Optional keyboard

keyboard: any

Enables navigation through slides using keyboard. Object with keyboard parameters or boolean true to enable with default settings

example
const swiper = new Swiper('.swiper', {
  keyboard: {
    enabled: true,
    onlyInViewport: false,
  },
});

Optional lazyPreloadPrevNext

lazyPreloadPrevNext: number

Number of next and previous slides to preload. Only applicable if using lazy loading.

default

0

Optional lazyPreloaderClass

lazyPreloaderClass: string

CSS class name of lazy preloader

default

'swiper-lazy-preloader'

Optional longSwipes

longSwipes: boolean

Set to false if you want to disable long swipes

default

true

Optional longSwipesMs

longSwipesMs: number

Minimal duration (in ms) to trigger swipe to next/previous slide during long swipes

default

300

Optional longSwipesRatio

longSwipesRatio: number

Ratio to trigger swipe to next/previous slide during long swipes

default

0.5

Optional loop

loop: boolean

Set to true to enable continuous loop mode

Because of nature of how the loop mode works (it will rearrange slides), total number of slides must be:

  • more than or equal to slidesPerView + slidesPerGroup
  • even to slidesPerGroup (or use loopAddBlankSlides parameter)
  • even to grid.rows (or use loopAddBlankSlides parameter)
default

false

Optional loopAddBlankSlides

loopAddBlankSlides: boolean

Automatically adds blank slides if you use Grid or slidesPerGroup and the total amount of slides is not even to slidesPerGroup or to grid.rows

default

true

Optional loopAdditionalSlides

loopAdditionalSlides: number

Allows to increase amount of looped slides

default

0

Optional loopPreventsSliding

loopPreventsSliding: boolean

If enabled then slideNext/Prev will do nothing while slider is animating in loop mode

default

true

Optional maxBackfaceHiddenSlides

maxBackfaceHiddenSlides: number

If total number of slides less than specified here value, then Swiper will enable backface-visibility: hidden on slide elements to reduce visual "flicker" in Safari.

note

It is not recommended to enable it on large amount of slides as it will reduce performance

default

10

Optional modules

modules: any[]

Array with Swiper modules

example
import Swiper from 'swiper';
import { Navigation, Pagination } from 'swiper/modules';

const swiper = new Swiper('.swiper', {
   modules: [ Navigation, Pagination ],
 });

Optional mousewheel

mousewheel: any

Enables navigation through slides using mouse wheel. Object with mousewheel parameters or boolean true to enable with default settings

example
const swiper = new Swiper('.swiper', {
  mousewheel: {
    invert: true,
  },
});

Optional navigation

navigation: any

Object with navigation parameters or boolean true to enable with default settings.

example
const swiper = new Swiper('.swiper', {
  navigation: {
    nextEl: '.swiper-button-next',
    prevEl: '.swiper-button-prev',
  },
});

Optional nested

nested: boolean

Set to true on Swiper for correct touch events interception. Use only on swipers that use same direction as the parent one

default

false

Optional noSwiping

noSwiping: boolean

Enable/disable swiping on elements matched to class specified in noSwipingClass

default

true

Optional noSwipingClass

noSwipingClass: string

Specify noSwiping's element css class

default

'swiper-no-swiping'

Optional noSwipingSelector

noSwipingSelector: string

Can be used instead of noSwipingClass to specify elements to disable swiping on. For example 'input' will disable swiping on all inputs

default

Optional normalizeSlideIndex

normalizeSlideIndex: boolean

Normalize slide index.

default

true

Optional observeParents

observeParents: boolean

Set to true if you also need to watch Mutations for Swiper parent elements

default

false

Optional observeSlideChildren

observeSlideChildren: boolean

Set to true if you also need to watch Mutations for Swiper slide children elements

default

false

Optional observer

observer: boolean

Set to true to enable Mutation Observer on Swiper and its elements. In this case Swiper will be updated (reinitialized) each time if you change its style (like hide/show) or modify its child elements (like adding/removing slides)

default

false

Optional on

on: {}

Register event handlers

Type declaration

Optional oneWayMovement

oneWayMovement: boolean

When enabled, will swipe slides only forward (one-way) regardless of swipe direction

default

false

Optional pagination

pagination: any

Object with pagination parameters or boolean true to enable with default settings.

example
const swiper = new Swiper('.swiper', {
  pagination: {
    el: '.swiper-pagination',
    type: 'bullets',
  },
});

Optional parallax

parallax: any

Object with parallax parameters or boolean true to enable with default settings.

example
const swiper = new Swiper('.swiper', {
  parallax: true,
});

Optional passiveListeners

passiveListeners: boolean

Passive event listeners will be used by default where possible to improve scrolling performance on mobile devices. But if you need to use e.preventDefault and you have conflict with it, then you should disable this parameter

default

true

Optional preventClicks

preventClicks: boolean

Set to true to prevent accidental unwanted clicks on links during swiping

default

true

Optional preventClicksPropagation

preventClicksPropagation: boolean

Set to true to stop clicks event propagation on links during swiping

default

true

Optional preventInteractionOnTransition

preventInteractionOnTransition: boolean

When enabled it won't allow to change slides by swiping or navigation/pagination buttons during transition

default

false

Optional resistance

resistance: boolean

Set to false if you want to disable resistant bounds

default

true

Optional resistanceRatio

resistanceRatio: number

This option allows you to control resistance ratio

default

0.85

Optional resizeObserver

resizeObserver: boolean

When enabled it will use ResizeObserver (if supported by browser) on swiper container to detect container resize (instead of watching for window resize)

default

true

Optional rewind

rewind: boolean

Set to true to enable "rewind" mode. When enabled, clicking "next" navigation button (or calling .slideNext()) when on last slide will slide back to the first slide. Clicking "prev" navigation button (or calling .slidePrev()) when on first slide will slide forward to the last slide.

default

false

note

Should not be used together with loop mode

Optional roundLengths

roundLengths: boolean

Set to true to round values of slides width and height to prevent blurry texts on usual resolution screens (if you have such)

default

false

Optional runCallbacksOnInit

runCallbacksOnInit: boolean

Fire Transition/SlideChange/Start/End events on swiper initialization. Such events will be fired on initialization in case of your initialSlide is not 0, or you use loop mode

default

true

Optional scrollbar

scrollbar: any

Object with scrollbar parameters or boolean true to enable with default settings.

example
const swiper = new Swiper('.swiper', {
  scrollbar: {
    el: '.swiper-scrollbar',
    draggable: true,
  },
});

Optional setWrapperSize

setWrapperSize: boolean

Enabled this option and plugin will set width/height on swiper wrapper equal to total size of all slides. Mostly should be used as compatibility fallback option for browser that don't support flexbox layout well

default

false

Optional shortSwipes

shortSwipes: boolean

Set to false if you want to disable short swipes

default

true

Optional simulateTouch

simulateTouch: boolean

If true, Swiper will accept mouse events like touch events (click and drag to change slides)

default

true

Optional slideActiveClass

slideActiveClass: string

CSS class name of currently active slide

default

'swiper-slide-active'

note

By changing classes you will also need to change Swiper's CSS to reflect changed classes

note

Not supported in Swiper React/Vue components

Optional slideBlankClass

slideBlankClass: string

CSS class name of the blank slide added by the loop mode (when loopAddBlankSlides is enabled)

default

'swiper-slide-blank'

note

Not supported in Swiper React/Vue

Optional slideClass

slideClass: string

CSS class name of slide

default

'swiper-slide'

note

By changing classes you will also need to change Swiper's CSS to reflect changed classes

note

Not supported in Swiper React/Vue components

Optional slideFullyVisibleClass

slideFullyVisibleClass: string

CSS class name of fully (when whole slide is in the viewport) visible slide

default

'swiper-slide-fully-visible'

note

Not supported in Swiper React/Vue

Optional slideNextClass

slideNextClass: string

CSS class name of slide which is right after currently active slide

default

'swiper-slide-next'

note

By changing classes you will also need to change Swiper's CSS to reflect changed classes

note

Not supported in Swiper React/Vue

Optional slidePrevClass

slidePrevClass: string

CSS class name of slide which is right before currently active slide

default

'swiper-slide-prev'

note

By changing classes you will also need to change Swiper's CSS to reflect changed classes

note

Not supported in Swiper React/Vue

Optional slideToClickedSlide

slideToClickedSlide: boolean

Set to true and click on any slide will produce transition to this slide

default

false

Optional slideVisibleClass

slideVisibleClass: string

CSS class name of currently/partially visible slide

default

'swiper-slide-visible'

note

By changing classes you will also need to change Swiper's CSS to reflect changed classes

note

Not supported in Swiper React/Vue

Optional slidesOffsetAfter

slidesOffsetAfter: number

Add (in px) additional slide offset in the end of the container (after all slides)

default

0

Optional slidesOffsetBefore

slidesOffsetBefore: number

Add (in px) additional slide offset in the beginning of the container (before all slides)

default

0

Optional slidesPerGroup

slidesPerGroup: number

Set numbers of slides to define and enable group sliding. Useful to use with slidesPerView > 1

default

1

Optional slidesPerGroupAuto

slidesPerGroupAuto: boolean

This param intended to be used only with slidesPerView: 'auto' and slidesPerGroup: 1. When enabled, it will skip all slides in view on .slideNext() & .slidePrev() methods calls, on Navigation "buttons" clicks and in autoplay.

default

false

Optional slidesPerGroupSkip

slidesPerGroupSkip: number

The parameter works in the following way: If slidesPerGroupSkip equals 0 (default), no slides are excluded from grouping, and the resulting behaviour is the same as without this change.

If slidesPerGroupSkip is equal or greater than 1 the first X slides are treated as single groups, whereas all following slides are grouped by the slidesPerGroup value.

default

0

Optional slidesPerView

slidesPerView: number | "auto"

Number of slides per view (slides visible at the same time on slider's container).

note

slidesPerView: 'auto' is currently not compatible with multirow mode, when grid.rows > 1

default

1

Optional spaceBetween

spaceBetween: string | number

Distance between slides in px.

default

0

note

If you use "margin" css property to the elements which go into Swiper in which you pass "spaceBetween" into, navigation might not work properly.

Optional speed

speed: number

Duration of transition between slides (in ms)

default

300

Optional swipeHandler

swipeHandler: any

String with CSS selector or HTML element of the container with pagination that will work as only available handler for swiping

default

null

Optional swiperElementNodeName

swiperElementNodeName: string

The name of the swiper element node name; used for detecting web component rendering

default

'SWIPER-CONTAINER'

Optional threshold

threshold: number

Threshold value in px. If "touch distance" will be lower than this value then swiper will not move

default

5

Optional thumbs

thumbs: any

Object with thumbs component parameters

example
const swiper = new Swiper('.swiper', {
  ...
  thumbs: {
    swiper: thumbsSwiper
  }
});

Optional touchAngle

touchAngle: number

Allowable angle (in degrees) to trigger touch move

default

45

Optional touchEventsTarget

touchEventsTarget: "container" | "wrapper"

Target element to listen touch events on. Can be 'container' (to listen for touch events on swiper) or 'wrapper' (to listen for touch events on swiper-wrapper)

default

'wrapper'

Optional touchMoveStopPropagation

touchMoveStopPropagation: boolean

If enabled, then propagation of "touchmove" will be stopped

default

false

Optional touchRatio

touchRatio: number

Touch ratio

default

1

Optional touchReleaseOnEdges

touchReleaseOnEdges: boolean

Enable to release touch events on slider edge position (beginning, end) to allow for further page scrolling. This feature works only with "touch" events (and not pointer events), so it will work on iOS/Android devices and won't work on Windows devices with pointer events. Also threshold parameter must be set to 0

default

false

Optional touchStartForcePreventDefault

touchStartForcePreventDefault: boolean

Force to always prevent default for touchstart (pointerdown) event

default

false

Optional touchStartPreventDefault

touchStartPreventDefault: boolean

If disabled, pointerdown event won't be prevented

default

true

Optional uniqueNavElements

uniqueNavElements: boolean

If enabled (by default) and navigation elements' parameters passed as a string (like ".pagination") then Swiper will look for such elements through child elements first. Applies for pagination, prev/next buttons and scrollbar elements

default

true

Optional updateOnWindowResize

updateOnWindowResize: boolean

Swiper will recalculate slides position on window resize (orientationchange)

default

true

Optional url

url: null | string

Required for active slide detection when rendered on server-side and enabled history

default

null

Optional userAgent

userAgent: null | string

userAgent string. Required for browser/device detection when rendered on server-side

default

null

Optional virtual

virtual: any

Enables virtual slides functionality. Object with virtual slides parameters or boolean true to enable with default settings.

example
const swiper = new Swiper('.swiper', {
  virtual: {
    slides: ['Slide 1', 'Slide 2', 'Slide 3', 'Slide 4', 'Slide 5'],
  },
});

Optional virtualTranslate

virtualTranslate: boolean

Enabled this option and swiper will be operated as usual except it will not move, real translate values on wrapper will not be set. Useful when you may need to create custom slide transition

default

false

Optional watchOverflow

watchOverflow: boolean

When enabled Swiper will be disabled and hide navigation buttons on case there are not enough slides for sliding.

default

true

Optional watchSlidesProgress

watchSlidesProgress: boolean

Enable this feature to calculate each slides progress and visibility (slides in viewport will have additional visible class)

default

false

Optional width

width: null | number

Swiper width (in px). Parameter allows to force Swiper width. Useful only if you initialize Swiper when it is hidden and in SSR and Test environments for correct Swiper initialization

default

null

note

Setting this parameter will make Swiper not responsive

Optional wrapperClass

wrapperClass: string

CSS class name of slides' wrapper

default

'swiper-wrapper'

note

By changing classes you will also need to change Swiper's CSS to reflect changed classes

note

Not supported in Swiper React/Vue

Optional zoom

zoom: any

Enables zooming functionality. Object with zoom parameters or boolean true to enable with default settings

example
const swiper = new Swiper('.swiper', {
  zoom: {
    maxRatio: 5,
  },
});

Methods

Optional onAny

  • onAny(handler: (eventName: string, ...args: any[]) => void): void
  • Add event listener that will be fired on all events

    example
    const swiper = new Swiper('.swiper', {
       onAny(eventName, ...args) {
         console.log('Event: ', eventName);
         console.log('Event data: ', args);
       }
     });
    

    Parameters

    • handler: (eventName: string, ...args: any[]) => void
        • (eventName: string, ...args: any[]): void
        • Parameters

          • eventName: string
          • Rest ...args: any[]

          Returns void

    Returns void

Generated using TypeDoc