后盾网lavarel视频项目---Vue项目使用vue-awesome-swiper轮播插件
后盾网lavarel视频项目---Vue项目使用vue-awesome-swiper轮播插件
一、总结
一句话总结:
vue中的插件的使用和js插件的使用一样的简单,只是vue插件的引入过程有些不同
项目src文件夹下的main.js入口文件中
import Vue from 'vue'
import VueAwesomeSwiper from 'vue-awesome-swiper' // require styles
import 'swiper/dist/css/swiper.css' Vue.use(VueAwesomeSwiper, /* { default global options } */)
二、前端进击之路——Vue项目使用vue-awesome-swiper轮播插件
转自或参考:前端进击之路——Vue项目使用vue-awesome-swiper轮播插件
https://blog.csdn.net/u014027876/article/details/81663080
1.首先呢,我们去gitHub上面找一个vue-awesome-swiper插件。

为了保证整个项目的稳定性,我们安装2.6.7版本。
npm install vue-awesome-swiper@2.6.7 --save
2.安装好以后如何使用呢?因为我们这个项目可能在各个页面上都会用到swiper轮播这个插件,所以我们就在全局引入这个插件。进入项目src文件夹下的main.js入口文件,加入如下几行代码:
import Vue from 'vue'
import VueAwesomeSwiper from 'vue-awesome-swiper'
// require styles
import 'swiper/dist/css/swiper.css'
Vue.use(VueAwesomeSwiper, /* { default global options } */)
接下来就是使用方法啦,具体模板如下:
<template>
<swiper :options="swiperOption" ref="mySwiper" @someSwiperEvent="callback">
<!-- 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>
由于我的项目中只进行图片轮播,不需要滚动条和导航按钮,所以我的代码如下:
<template>
<swiper :options="swiperOption">
<!-- slides -->
<swiper-slide>
<img src=""/>
</swiper-slide>
<swiper-slide>
<img src=""/>
</swiper-slide>
<!-- 如果需要分页器 -->
<div class="swiper-pagination" slot="pagination"></div>
</swiper>
</template>
完成上述代码以后就可以看到图片有轮播效果啦,但是图片大小与屏幕好像不匹配,这个时候我们就要给每个img标签加一个class,将其width设为100%就可以啦~
为了解决屏幕抖动问题,我们需要在swiper外面加一层class=“wrapper”的div包裹,然后在css样式中利用padding-bottom属性来完成图片的自适应高度占位,防止图片未加载出来到加载完成过程中屏幕出现抖动。具体css样式代码如下:`
.wrapper
overflow:hidden
width:100%
height:0
padding-bottom:30.48%
background: #eee
.swiper-img
width:100%
敲黑板!重点内容来啦~~
为什么采用padding-bottom就可以实现高度自适应呢?因为padding-bottom以百分比进行显示的时候是相对于父元素的width而言的。我们将swiper的父级元素wrapper宽度设置为100%是相对于wrapper父元素的宽度而言的,padding-bottom设置为30.48%也是相对于wrapper父元素的宽度而言的,但由于wrapper的宽度已经和它父元素宽度相等(100%)了,所以padding-bottom就相当于wrapper元素的高宽比就是30.48%,它的高度就会相对于它的宽度自动撑开30.48%。
接下来说说swiper中分页器的使用
<script>
export default {
name: 'HomeSwiper',
data() {
return {
swiperOption: {
// some swiper options/callbacks
// 所有的参数同 swiper 官方 api 参数
pagination: '.swiper-pagination', //分页器挂载到swiper-pagination类对应的元素上
loop: true //开启轮播图前后循环模式
}
}
},
}
</script>
设置好分页器之后轮播图上就有了几个小圆点了,默认选中的圆点是蓝色的,但是设计图中是白色的,那么这就很致命了,于是我们找到小圆点对应的元素是被.swiper-pagination-bullet-active控制的,所以我们从这个上面入手去修改颜色。
然鹅这个类不是我们当前组件中定义的元素,所以在以scoped修饰的css代码中我们不能直接修改该元素的样式,这个时候,我们就要用到样式“穿透”,从而可以不受scoped的限制来修改样式了。具体代码如下:
.wrapper >>> .swiper-pagination-bullet-active
background:#fff
3.最后,我们利用v-for来实现图片的循环输出,最终代码如下:
<template>
<div class="wrapper">
<swiper :options="swiperOption" >
<swiper-slide v-for='item of swiperList' :key="item.id">
<img :src="item.imgUrl" class="swiper-img">
</swiper-slide>
<div class="swiper-pagination" slot="pagination"></div>
</swiper>
</div>
</template>
<script>
export default {
name: 'HomeSwiper',
data: function () {
return {
swiperOption: {
pagination: '.swiper-pagination',
loop: true
},
swiperList:[{
id:"0001",
imgUrl:"http://img1.qunarzz.com/piao/fusion/1801/1a/94428c6dea109402.jpg_640x200_2cf590d8.jpg"
},{
id:"0002",
imgUrl:"http://img1.qunarzz.com/piao/fusion/1802/42/7c92b9a381e46402.jpg_640x200_1cdce2a4.jpg"
}]
}
}
}
</script>
<style lang="stylus" scoped>
.wrapper >>> .swiper-pagination-bullet-active
background:#fff
.wrapper
overflow: hidden
width: 100%
height: 0
padding-bottom: 30.48%
background: #ccc
.swiper-img
width: 100%
</style>
当当当~~最终效果图呈上来咯:
后盾网lavarel视频项目---Vue项目使用vue-awesome-swiper轮播插件的更多相关文章
- 后盾网lavarel视频项目---4、lavarel和vue都是{{}}表示变量,如何解决冲突
后盾网lavarel视频项目---4.lavarel和vue都是{{}}表示变量,如何解决冲突 一.总结 一句话总结: @{{videos}}:@符号表示lavarel不处理:textarea nam ...
- 后盾网lavarel视频项目---vue实现动态添加和删除板块
后盾网lavarel视频项目---vue实现动态添加和删除板块 一.总结 一句话总结: 原理就是:列表时根据vue中的videos变量中的元素来遍历的,初始时videos:[{title:'',pat ...
- 后盾网lavarel视频项目---5、淘宝镜像cnpm的原理及如何使用
后盾网lavarel视频项目---5.淘宝镜像cnpm的原理及如何使用 一.总结 一句话总结: 原理:把npm上面的所有软件copy过来 使用:npm install -g cnpm --regist ...
- 后盾网lavarel视频项目---lavarel多表关联一对多操作实例
后盾网lavarel视频项目---lavarel多表关联一对多操作实例 一.总结 一句话总结: 1.一对多中多那个部分的数据前端通过json弄到服务器 2.所有通过一操作多的时候,都要用上模型中定义的 ...
- 后盾网lavarel视频项目---vue-axios基本用法
后盾网lavarel视频项目---vue-axios基本用法 一.总结 一句话总结: 都是npm安装,然后import引入vue,然后按手册使用就好了,很简单 二.vue-axios基本用法 转自或参 ...
- 后盾网lavarel视频项目---1、数据迁移
后盾网lavarel视频项目---1.数据迁移 一.总结 一句话总结: 1.lavarel的数据迁移比较简单,就是用php来创建数据表 2.创建迁移文件:php artisan make:migrat ...
- 后盾网lavarel视频项目---phpstorm 配置ftp, 自动更新同步代码
后盾网lavarel视频项目---phpstorm 配置ftp, 自动更新同步代码 一.总结 一句话总结: 1.在phpstorm中设置:路径Tools/Deployment/Configuratio ...
- 后盾网lavarel视频项目---lavarel中的tinker是什么
后盾网lavarel视频项目---lavarel中的tinker是什么 一.总结 一句话总结: 是用来调试laravel,可以打印变量或对象信息,显示函数代码,对数据库写入和查询数据 laravel中 ...
- 后盾网lavarel视频项目---lavarel用户认证实例
后盾网lavarel视频项目---lavarel用户认证实例 一.总结 一句话总结: 主要是用的Auth认证,所以配置是配置的auth(config/auth.php),控制器中调用也是用的Auth( ...
随机推荐
- js之数据类型(对象类型——单体内置对象——Math)
Math是一个内置对象,它具有数学常数和函数的属性和方法.Math对象用于执行数学任务,和其它对象不同,Math只是一个静态对象并没有Math()构造函数,实际上,Math()只是一个由js设置的对象 ...
- java中long类型转换为int类型
由int类型转换为long类型是向上转换,可以直接进行隐式转换,但由long类型转换为int类型是向下转换,可能会出现数据溢出情况: 主要以下几种转换方法,供参考: 一.强制类型转换 [java] l ...
- 升级openssh到高版本
linux升级openssh到高版本 可以解决OpenSSH 安全漏洞(CVE-2018-15919)和SSH服务器类型和版本 如果是新服务器,需要安装对应命令vim 上传下载等命令 安装上传或者下载 ...
- split分离特殊字符
Invalid escape sequence (valid ones are \b \t \n \f \r \" \' \\ ) \b \t \n \f \r \ ...
- 80C51串行口
串行通信是指 使用一条数据线,将数据一位一位地依次传输,每一位数据占据一个固定的时间长度 单工.半双工.全双工 单工数据传输只支持数据在一个方向上传输 半双工数据传输允许数据在两个方向上传输,但是,在 ...
- WPF实战案例-在线程内同步集合数据到UI线程
有这样一个场景,在vm中,我们为了ui的体验,会异步访问后端接口,获取数据集合,如果这个集合绑定到界面,并且在线程内,怎么处理? 有人讲:this.Dispatcher.Invoke,如果在vm内呢? ...
- 前端基础(八):Font Awesome(图标)
一.font awesome简介 目前图标总数共有519个; 不依赖Javascript 矢量图形,无限缩放 免费,可用于商业 CSS控制样式,自定义图标颜色,大小,阴影,一切可能实现的效果 支持re ...
- 在idea中相同的字符串使用equals()进行比较时,返回值是flase问题
最近在idea中遇到了一个编码的问题,我的程序是从前台传过来一个字符串,判断用户的角色(学生,教师,管理员), 在进行equals()判断时,返回的确是false,然后就在网上查了查,发现是编码的问题 ...
- 编译原理实战——使用Lex/Flex进行编写一个有一定词汇量的词法分析器
编译原理实战--使用Lex/Flex进行编写一个有一定词汇量的词法分析器 by steve yu 2019.9.30 参考文档:1.https://blog.csdn.net/mist14/artic ...
- 【小知识】证明 $1$ 到 $n$ 的立方和公式
scb 发明了小学奥数(确信) Formula \(\sum\limits_{i=1}^n i^3 = (\sum\limits_{i=1}^n i)^2\) Provement 构造一个矩阵 \(a ...