vue-awesome-swiper插件
vue-awesome-swiper是基于 Swiper4、适用于 Vue 的轮播组件,支持服务端渲染和单页应用。
vue-awesome-swiper是基于swiper的,安装不同版本的vue-awesome-swiper对应不同的swiper,所以swiper里面的属性多数能应用到vue-awesome-swiper中,也可以根据swiper文档来设置vue-awesome-swiper属性;
swiper官方文档:https://www.swiper.com.cn/api/index2.html
1、安装
npm install vue-awesome-swiper cnpm inatall vue-awesome-swiper
2、引入
全局引入:
import vueSwiper from 'vue-awesome-swiper' import 'swiper/dist/css/swiper.css' //引入样式
组件方式引入:
import { swiper, swiperSlide } from "vue-awesome-swiper"; require("swiper/dist/css/swiper.css"); components: { swiper, swiperSlide },
3、案例:
<template> <divclass="commodity"> <divclass="container"> <swiperclass='swiImgs':options="swiperOption"v-if="commodity.length!=0"> <swiper-slidev-for="(item,index)incommodity"data-index="index":key="index"class="item"> <imgclass='swiImg':src='item'/> </swiper-slide> <divclass="swiper-scrollbar"></div>//滚动条 <divclass="swiper-button-next"></div>//下一页 <divclass="swiper-button-prev"></div>//上一页 <divclass="swiper-pagination"v-for="(item,index)indetailimages":key="index"slot="pagination"> </div> </swiper> <spanclass='swiText'v-if='commodity'>{{imgIndex}}/{{commodity.length}}</span> </div> </div> </template> <script> exportdefault{ data(){ constthat=this; return{ commodity:[ "https://boweisou.oss-cn-shenzhen.aliyuncs.com/yy/images/911a7002e11608fb581fffcde05d5257.jpg-600", "https://boweisou.oss-cn-shenzhen.aliyuncs.com/yy/images/2_1536049430.jpg-600", "https://boweisou.oss-cn-shenzhen.aliyuncs.com/yy/images/911a7002e11608fb581fffcde05d5257.jpg-600", https://boweisou.oss-cn-shenzhen.aliyuncs.com/yy/images/2_1536049430.jpg-600, ],//这里就使用假数据了, imgIndex:1, swiperOption:{ //是一个组件自有属性,如果notNextTick设置为true,组件则不会通过NextTick来实例化swiper, //也就意味着你可以在第一时间获取到swiper对象,假如你需要刚加载遍使用获取swiper对象来做什么事, //那么这个属性一定要是true notNextTick:true, //循环 loop:true, //设定初始化时slide的索引 initialSlide:0, //自动播放 autoplay:{ delay:1500, stopOnLastSlide:false, disableOnInteraction:false }, //滑动速度 speed:800, //滑动方向 direction:"horizontal", //小手掌抓取滑动 grabCursor:true, //滑动之后回调函数 on:{ slideChangeTransitionStart:function(){ that.imgIndex=this.realIndex+1; //获取轮播图片下标索引;这里有一个坑,之前网上找到的是用activeIndex, //但后来网上说的是这个realIndex,原来activeIndex是swiper2.0的;而realIndex是swiper3.0的, //(使用realIndex才实现了下标索引) }, }, //分页器设置 pagination:{ el:".swiper-pagination", clickable:true, type:"bullets" } } } }, created(){ this.swiperOption.autoplay=this.commodity.length!=1?{//控制只有一张图片的时候不自动轮播 delay:1500, stopOnLastSlide:false, disableOnInteraction:false }:false; }, methods:{ } } </script> <stylelang="less"rel="stylesheet/less"> .commodity{ background:#f5f5f5; .container{ position:relative; .swiText{ position:absolute; height:0.5rem; width:0.5rem; bottom:0.2rem; right:0.3rem; font-size:0.33rem; color:#fff; z-index:10; } .swiImgs{ width:100%; .item{ height:7.5rem; .swiImg{ width:100%; } } } } } </style>
4、参数说明:
数 | 类型(swiper3) | 默认值(swiper3) | 类型(swiper4) | 默认值(swiper4) | 说明 |
---|---|---|---|---|---|
autoplay | Number/Boolean | 0/false | Object | autoplay | 自动切换 |
speed | Number | 300 | Number | 300 | 切换速度 |
loop | Boolean | false | Boolean | false | loop模式 |
loopAdditionalSlides | Number | 0 | Number | 0 | loop模式下会在slides前后复制若干个slide,,前后复制的个数不会大于原总个数。 |
loopedSlides | Number | 1 | Number | 1 | 在loop模式下使用slidesPerview:'auto',还需使用该参数设置所要用到的loop个数。 |
direction | String | horizontal | String | horizontal | Slides的滑动方向 |
autoplayDisableOnInteraction | Boolean | true | - | - | 用户操作swiper之后,是否禁止autoplay |
autoplayStopOnLast | Boolean | true | - | - | 切换到最后一个slide时停止自动切换 |
grabCursor | Boolean | false | Boolean | false | 鼠标覆盖Swiper时指针会变成手掌形状,拖动时指针会变成抓手形状 |
width | Number | - | Number | - | 强制Swiper的宽度 |
height | Number | - | Number | - | 强制Swiper的高度 |
autoHeight | Boolean | false | Boolean | false | 自动高度 |
freeMode: | swiper3/4 api相同 | ||||
freeMode | Boolean | false | - | - | free模式,slide会根据惯性滑动且不会贴合 |
freeModeMomentum | Boolean | true | - | - | free模式动量。若设置为false则关闭动量,释放slide之后立即停止不会滑动。 |
freeModeMomentumRatio | Number | 1 | - | - | free模式动量值(移动惯量) |
freeModeMomentumVelocityRatio | Number | 1 | - | - | 动量反弹 |
freeModeMomentumBounce | Boolean | true | - | - | Slides的滑动方向 |
freeModeMomentumBounceRatio | Number | 1 | - | - | 值越大产生的边界反弹效果越明显,反弹距离越大。 |
freeModeSticky | Boolean | false | - | - | 使得freeMode也能自动贴合。 |
effect: | swiper3/4 api相同 | ||||
effect | String | slide | - | - | slide的切换效果。 |
fade/fadeEffect(4) | Object | fade | - | - | fade效果参数。 |
cube/cubeEffect | Object | cube | - | - | cube效果参数。 |
coverflow/coverflowEffect | Object | coverflow | - | - | coverflow效果参数。 |
flip/flipEffect | Object | flip | - | - | flip效果参数。 |
Zoom: | |||||
zoom | Boolean | false | Object | zoom | 焦距功能:双击slide会放大,并且在手机端可双指触摸缩放。 |
zoomMax | Number | 3 | - | - | 最大缩放焦距(放大倍率). |
zoomMin | Number | 1 | - | - | 最小缩放焦距(缩小倍率)。 |
zoomToggle | Boolean | true | - | - | 设置为false,不允许双击缩放,只允许手机端触摸缩放。 |
pagination: | |||||
pagination | String | - | Object | pagination | 分页器容器的css选择器或HTML标签 |
paginationType | String | - | - | - | bullets’ 圆点(默认)‘fraction’ 分式 ‘progress’ 进度条‘custom’ 自定义 |
paginationClickable | Boolean | false | - | - | 点击分页器的指示点分页器控制Swiper切换 |
paginationHide | Boolean | false | - | - | 默认分页器会一直显示 |
paginationElement | String | span | - | - | 设定分页器指示器(小点)的HTML标签。 |
Navigation Buttons: | swiper4 navigation | ||||
nextButton | string / HTMLElement | - | - | - | 前进按钮的css选择器或HTML元素。 |
prevtButton | string / HTMLElement | - | - | - | 后退按钮的css选择器或HTML元素。 |
Scrollbar: | |||||
scrollbar | string / HTMLElement | - | Object | swiper4 Scrollbar | Scrollbar容器的css选择器或HTML元素 |
scrollbarHide | Bolean | true | - | - | 滚动条是否自动隐藏。 |
scrollbarDraggable | Boolean | false | - | - | 该参数设置为true时允许拖动滚动条。 |
scrollbarSnapOnRelease | Boolean | false | - | - | 如果设置为true,释放滚动条时slide自动贴合。 |
更多web前端开发知识,请查阅 HTML中文网 !!
以上就是vue.js有轮播图插件吗?的详细内容,更多请关注0133技术站其它相关文章!