vue-awesome-swiper

在vue框架中 使用swiper组件
参考:vue-swiper的使用 - 流浪_光头 - 博客园
api:中文api - Swiper中文网
官方demo:vue-awesome-swiper
官方配置:GitHub - surmon-china/vue-awesome-swiper: 🏆 Swiper component for @vuejs
下载包
npm install vue-awesome-swiper --save
或yarn方式
yarn add vue-awesome-swiper --save

全局引用
import方式

1
2
3
4
5
// import
import Vue from 'vue'
import VueAwesomeSwiper from 'vue-awesome-swiper'
// require styles
import 'swiper/dist/css/swiper.css'

也可以require方式
1
2
3
var Vue = require('vue')
var VueAwesomeSwiper = require('vue-awesome-swiper')
require('swiper/dist/css/swiper.css')
再在index.js里全局注册

Vue.use(VueAwesomeSwiper)

在模版里引用

1
2
3
4
5
6
7
8
9
10
import { swiper, swiperSlide } from 'vue-awesome-swiper'
// require styles
import 'swiper/dist/css/swiper.css'

export default {
components: {
swiper,
swiperSlide
}
}

不循环切换
vue-awesome-swiper/02-navigation.vue at master · surmon-china/vue-awesome-swiper · GitHub

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<swiper :options="swiperOption">
<swiper-slide v-for="item in picList" :key="item">
<img :src="item" alt="" style="width:100%">
</swiper-slide>
<div class="swiper-button-prev" slot="button-prev"></div>
<div class="swiper-button-next" slot="button-next"></div>
</swiper>

<script>
export default {
data() {
return {
swiperOption: {
navigation: {
nextEl: '.swiper-button-next',
prevEl: '.swiper-button-prev'
}
}
}
}
}
</script>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
<template>
<swiper :options="swiperOption" ref="mySwiper">
<!-- slides -->
<swiper-slide>I'm Slide 1</swiper-slide>
<swiper-slide>I'm Slide 2</swiper-slide>
<swiper-slide>I'm Slide 3</swiper-slide>
<swiper-slide>I'm Slide 4</swiper-slide>
<swiper-slide>I'm Slide 5</swiper-slide>
<swiper-slide>I'm Slide 6</swiper-slide>
<swiper-slide>I'm Slide 7</swiper-slide>
<!-- Optional controls -->
<div class="swiper-pagination" slot="pagination"></div>//
<div class="swiper-button-prev" slot="button-prev"></div>
<div class="swiper-button-next" slot="button-next"></div>
<div class="swiper-scrollbar" slot="scrollbar"></div>
</swiper>
</template>

<script>
// swiper options example:
export default {
name: 'carrousel',
data() {
return {
swiperOption: {//以下配置不懂的,可以去swiper官网看api,链接http://www.swiper.com.cn/api/
// notNextTick是一个组件自有属性,如果notNextTick设置为true,组件则不会通过NextTick来实例化swiper,也就意味着你可以在第一时间获取到swiper对象,<br>        假如你需要刚加载遍使用获取swiper对象来做什么事,那么这个属性一定要是true
notNextTick: true,
// swiper configs 所有的配置同swiper官方api配置
autoplay: 3000,
direction : 'vertical',
grabCursor : true,
setWrapperSize :true,
autoHeight: true,
pagination : '.swiper-pagination',
paginationClickable :true,
prevButton:'.swiper-button-prev',//上一张
nextButton:'.swiper-button-next',//下一张
scrollbar:'.swiper-scrollbar',//滚动条
mousewheelControl : true,
observeParents:true,
// 如果自行设计了插件,那么插件的一些配置相关参数,也应该出现在这个对象中,如下debugger
debugger: true,
}
}
},
}
</script>

问题背景
走马灯 原使用element ui,但是 轮播按钮是循环的,停不下来,遂换swiper

1
2
3
4
5
<el-carousel height="450px">
<el-carousel-item v-for="item in picList" :key="item">
<img :src="item" alt="" style="width:100%">
</el-carousel-item>
</el-carousel>

element ui API:Element