flickity是一个通用的、灵活的、模块化的jQuery滑块插件,用于创建响应灵敏的、支持触摸的内容滑块/画廊/幻灯片/旋转木马,具有基于物理的动画和全功能API。
当前许可的GPL v3。也可以用作Vanilla JavaScript插件。
# NPM $ npm install flickity --save
1.在文档中包含flickity的JavaScript和CSS。
<!-- from local --> <link href="dist/flickity.min.css" rel="stylesheet"> <script src="dist/flickity.pkgd.min.js"></script> <!-- OR from a CDN --> <link href="https://cdn.jsdelivr.net/npm/[emailÃÂ protected]/dist/flickity.min.css" rel="stylesheet"> <script src="https://cdn.jsdelivr.net/npm/[emailÃÂ protected]/dist/flickity.pkgd.min.js"></script>
2.在文档中包含jQuery库(可选)。
<script src="/path/to/cdn/jquery.min.js"></script>
3.将您的内容嵌入到滑块中,如下所示:
<div class="carousel"> <div class="carousel-cell">Slide 1</div> <div class="carousel-cell">Slide 2</div> <div class="carousel-cell">Slide 3</div> ... More Slides Here ... </div>
4.将data flickity属性添加到顶部容器以初始化转盘。
<div class="carousel" data-flickity='{ options here }'> <div class="carousel-cell">Slide 1</div> <div class="carousel-cell">Slide 2</div> <div class="carousel-cell">Slide 3</div> ... More Slides Here ... </div>
5.使用JavaScript(jQuery)初始化转盘。
$('.carousel').flickity();
6.使用香草JavaScript初始化滑块。
// jQuery $('.carousel').flickity({ // options here }); // Vanilla JS var myCarousel = new Flickity( '.carousel', { // options here });
7.通过将选项对象传递到Flickity来配置转盘滑块。
$('.carousel').flickity({ // enable keyboard navigation accessibility: true, // make the carousel's height fit the selected slide adaptiveHeight: false, // enable auto play // set delay time to enable the autoplay // e.g. autoPlay: 5000 autoPlay: false, // 'center', 'left', or 'right' // or a decimal 0-1, 0 is beginning (left) of container, 1 is end (right) cellAlign: 'center', // cell selector cellSelector: undefined, // will contain cells to container // so no excess scroll at beginning or end // has no effect if wrapAround is enabled contain: false, // enable dragging & flicking when the slides > 1 draggable: '>1', // the number of pixels a user must scroll horizontally to start dragging dragThreshold: 3, // enable content to be freely scrolled and flicked // without aligning cells freeScroll: false, // smaller number = easier to flick farther friction: 0.2, // group cells together in slides groupCells: false, // enable image lazy load // you can specify the original img src in the data-flickity-lazyload attribute lazyLoad: true, // intial slide initialIndex: 0, // set positioning in percent values, rather than pixels // Enable if items have percent widths // Disable if items have pixel widths, like images percentPosition: true, // enable next/prev buttons prevNextButtons: true, // enable pagination dots pageDots: true, // listens to window resize events to adjust size & positions resize: true, // enable RTL support rightToLeft: false, // set the height of the gallery setGallerySize: true, // watches the content of :after of the element // activates if #element:after { content: 'flickity' } // IE8 and Android 2.3 do not support watching :after // set watch: 'fallbackOn' to enable for these browsers watchCSS: false, // at end of cells, wraps-around to first for infinite scrolling wrapAround: false });
8.APIæ¹æ³ã
// jQuery // $carousel.flickity('methodName', parameters); // Vanilla // myCarousel.methodName(parameters); // go to a specific slide $carousel.flickity( 'select', index, isWrapped, isInstant ); // go to the previous slide $carousel.flickity( 'previous', isWrapped, isInstant ); // go to the next slide $carousel.flickity( 'next', isWrapped, isInstant ); // select a slide $carousel.flickity( 'selectCell', value, isWrapped, isInstant ); // resize & re-position the carousel $carousel.flickity('resize'); $carousel.flickity('reposition'); // add more slides $carousel.flickity( 'prepend', elements ); $carousel.flickity( 'append', elements ); // insert a slide $carousel.flickity( 'insert', elements, index ); // remove a slide $carousel.flickity( 'remove', elements ); // enable/disable/pause/resume autoplay $carousel.flickity('playPlayer'); $carousel.flickity('stopPlayer'); $carousel.flickity('pausePlayer') $carousel.flickity('unpausePlayer'); // set the carousel to fullscreen $carousel.flickity('viewFullscreen'); // exit the fullscreen mode $carousel.flickity('exitFullscreen'); // toggle the fullscreen mode $carousel.flickity('toggleFullscreen'); // destroy the plugin $carousel.flickity('destroy'); // reload all slides $carousel.flickity('reloadCells'); // get the elements of the slide var cellElements = $carousel.flickity('getCellElements');
9.äºä»¶å¤çç¨åºã
// jQuery // $carousel.on('eventName', function); // $carousel.off('eventName', function); // $carousel.once('eventName', function); // Vanilla // myCarousel.on('eventName', function); // myCarousel.off('eventName', function); // myCarousel.once('eventName', function); $carousel.on( 'ready.flickity', function() { // on ready }); $carousel.on( 'change.flickity', function( event, index ) { // on change }); $carousel.on( 'select.flickity', function( event, index ) { // when a slide is selected }); $carousel.on( 'settle.flickity', function( event, index ) { // when the carousel is settled at its end position }); $carousel.on( 'scroll.flickity', function( event, progress ) { // on move }); $carousel.on( 'dragStart.flickity', function( event, pointer ) { // on drag start }); $carousel.on( 'dragMove.flickity', function( event, pointer, moveVector ) { // on drag move }); $carousel.on( 'dragEnd.flickity', function( event, pointer ) { // on drag end }); $carousel.on( 'pointerDown.flickity', function( event, pointer ) { // when the user's pointer (mouse, touch, pointer) presses down }); $carousel.on( 'pointerMove.flickity', function( event, pointer, moveVector ) { // when the user's pointer moves. }); $carousel.on( 'pointerUp.flickity', function( event, pointer ) { // when the user's pointer unpresses }); $carousel.on( 'staticClick.flickity', function( event, pointer, cellElement, cellIndex ) { // when the user's pointer is pressed and unpressed and has not moved enough to start dragging }); $carousel.on( 'lazyLoad.flickity', function( event, cellElement ) { // after an image has been loaded }); $carousel.on( 'bgLazyLoad.flickity', function( event, element ) { // after a background image has been loaded }); $carousel.on( 'fullscreenChange.flickity', function( event, isFullscreen ) { // after entering or exiting fullscreen mode });
v2.3.0(2021 12月20日)
v2.2.2(2021 4月1日)
2019-08-20
v2.1.2版本(2018-10-08)