vue-awesome-swiper使用纪实
最近做一个项目,需要用到轮播和全屏滑动功能,所以用到了vue-awesome-swiper插件,以下为个人记录下此插件的用法。
效果说明:

- 上面部分是个轮播图,自动开始轮播,轮播间隔为3000ms
 - 推荐和软件是两个tab,点击可切换当前显示
 - 最下面是个可左右滑动区域,分别对应推荐和软件两个tab
 
1、安装依赖
npm install --save vue-awesome-swiper
2、引入组件和样式
//App.vue
<script>
import 'swiper/dist/css/swiper.css'
import {swiper,swiperSlide} from 'vue-awesome-swiper'
export default {
name: 'App',
components: {
swiper,
swiperSlide
},
}
</script
3、使用swiper和swiperSlide组件
<div class="swiper-container swiper-container1">
<swiper class="swiper-wrapper" :options="bannerOptions" ref="bannerSwiper">
<swiper-slide class="swiper-slide">
<img class="container1-img" src="./assets/logo.png" />
</swiper-slide>
<swiper-slide class="swiper-slide">
<img class="container1-img" src="./assets/logo.png" />
</swiper-slide>
</swiper>
</div>
<div class="swiper-container swiper-container2">
<swiper class="swiper-wrapper" :options="swiperOptions" ref="mySwiper">
<swiper-slide class="swiper-slide section">
<div class="content-slide">
<div class="section-list">
<header>下载最多</header>
<div class="list">
<div class="list-img">
<img src="./assets/logo.png" />
</div>
<div class="list-desc">
<p class="title">淘宝</p>
<div class="star" v-if="num == 5">
<span class="light"></span>
<span class="light"></span>
<span class="light"></span>
<span class="light"></span>
<span class="light"></span>
<span class="size">54.13MB</span>
</div>
<div class="star" v-if="num == 4">
<span class="light"></span>
<span class="light"></span>
<span class="light"></span>
<span class="light"></span>
<span class="dark"></span>
<span class="size">54.13MB</span>
</div>
<p class="desc">新人领388元购物礼包</p>
</div>
<div class="list-download">
<a href="">下载</a>
</div>
</div>
</div>
</div>
</swiper-slide>
<swiper-slide class="swiper-slide section">
<div class="content-slide">
<div class="section-list">
<header>本周最热</header>
<div class="list">
<div class="list-img">
<img src="./assets/logo.png" />
</div>
<div class="list-desc">
<p class="title">淘宝</p>
<div class="star">
<span class="light"></span>
<span class="light"></span>
<span class="light"></span>
<span class="light"></span>
<span class="dark"></span>
<span class="size">54.13MB</span>
</div>
<p class="desc">新人领388元购物礼包</p>
</div>
<div class="list-download">
<a href="">下载</a>
</div>
</div>
</div>
</div>
</swiper-slide>
</swiper>
</div>
4、配置options选项
export default {
  name: 'App',
  components: {
    swiper,
    swiperSlide
  },
  data() {
    return {
      num: 5,
      bannerOptions: {
        speed: 300,
        autoplay: true
      },
      swiperOptions: {
        notNextTick: true,
        autoHeight: true
      }
    }
  }
}
5、实现左右滑动分别对应推荐和软件两个tab显示,则首先要拿到swiper这个对象
computed: {
    swiper() {
      return this.$refs.mySwiper.swiper
    }
  },
第一步:推荐和软件tab的点击使swiper区域滑动
methods: {
    changeTab(i) {
      let ul = document.getElementById('myMenu');
      let li = ul.getElementsByTagName('li');
      for (let index = 0; index < li.length; index++) {
          li[index].className = ''
      }
      li[i].className = 'active'
      this.swiper.slideTo(i,500,false)
    },
}
第二步:左右滑动使tab样式改变
swiperOptions: {
        notNextTick: true,
        autoHeight: true,
        on: {
          slideChangeTransitionEnd(){
            console.log(this.activeIndex)
            let i = this.activeIndex;
            let ul = document.getElementById('myMenu');
            let li = ul.getElementsByTagName('li');
            for (let index = 0; index < li.length; index++) {
                li[index].className = ''
            }
            li[i].className = 'active'
          }
        }
      }
6、综述
以上就可以实现我想要的效果。我所配置的选项比较少,如果你需要多项选项配置,可以去看swiper中文网,里面有更详细的配置。
vue-awesome-swiper使用纪实的更多相关文章
- vue引入swiper  vue使用swiper  vue脚手架使用swiper /引入js文件/引入css文件
		
vue引入swiper vue使用swiper vue脚手架使用swiper /引入js文件/引入css文件 ------------------------------------------- ...
 - Vue与swiper想结合封装全屏轮播插件
		
项目需求介绍: 1.页面图文混排, 2.点击图片后全屏展示图片,并在底部显示文字,如果没有则不显示 3.关闭全屏后依然停留在上次浏览的位置 4.浏览图片时,不管点击的哪张图片,全屏展示的时候也要显示这 ...
 - vue 使用swiper的一些问题(页面渲染问题)
		
//Swiper上下滚动初始化 swiper_init(){ this.$nextTick(function(){ var mySwiper = new Swiper ('.swiper-contai ...
 - vue awaresome swiper的使用
		
main.jsimport VueAwesomeSwiper from 'vue-awesome-swiper'import 'swiper/dist/css/swiper.css'Vue.use(V ...
 - 小程序和Vue利用swiper实现icons分页显示--动态计算
		
这里发现小程序实现步骤,Vue与之类似 先上效果图: <view class="icons"> <swiper indicator-dots="true ...
 - vue使用swiper模块滑动时报错:[Intervention] Ignored attempt to cancel a touchmove event with cancelable=false, for example becaus
		
报错: vue报这个错 [Intervention] Ignored attempt to cancel a touchmove event with cancelable=false, for ex ...
 - 轮播模仿臭美APP,vue,swiper
		
介绍:轮播使用了swiper,重要用于移动端滑动,详情可查看官网 1.首先用npm安装 npm install swiper 2.main.js 中引入CSS import 's ...
 - vue封装swiper
		
参考:https://github.com/surmon-china/vue-awesome-swiper npm install vue-awesome-swiper --save 全局引入 imp ...
 - vue添加swiper的正确方式亲测---切图网
		
在vue项目中,我们在做图片轮播的方式和传统切图不同,传统切图中我们一般采用非常强大的swiper来完成,而在vue中一般依赖vue-awesome-swiper组件来完成(vue-awesome-s ...
 - Vue整合swiper报错Could not compile template .....swiper\dist\css\swiper.css解决办法
		
问题描述 今天做一个前端项目,安装幻灯片插件vue-awesome-swiper后 运行npm run dev 后报错如下: `ERROR Could not compile template E:\ ...
 
随机推荐
- Java实现的一个简单的模板渲染
			
代码 package com.hdwang; import java.util.HashMap; import java.util.Map; /** * Created by hdwang on 20 ...
 - POJ 2135 Farm Tour (网络流,最小费用最大流)
			
POJ 2135 Farm Tour (网络流,最小费用最大流) Description When FJ's friends visit him on the farm, he likes to sh ...
 - C++ ------ const迭代器 和 const_iterator的区别
			
const迭代器,顾名思义,就是不能改变的迭代器,是常量,其性质是由const决定的.比如说我们这样定义一个const迭代器. vector<,); const vector<int> ...
 - 「Django」浏览+1的操作
			
适应于网页.文章等浏览次数统计 1.Models设置:添加viewed方法 class NewsTitle(models.Model): title = models.CharField(max_le ...
 - JMS学习(六)--提高非持久订阅者的可靠性 以及 订阅恢复策略
			
一,非持久订阅者 和 实时消费消息 在这篇文章中区分了Domain为Pub/Sub.Destination为Topic时,消费者有两种:持久订阅者 和 非持久订阅者. 对于持久订阅者而言,只要订阅了某 ...
 - 微软官网给出CSS选择器支持列表
			
CSS Compatibility and Internet Explorer 这是在 @司徒正美 博客里看到的,所以搬到自己博客,收藏下..正如司徒兄所说,微软太狡滑了,如果把不支持的属性用红色标示 ...
 - 基于canvas将图片转化成字符画
			
字符画大家一定非常熟悉了,那么如何把一张现有的图片转成字符画呢?HTML5让这个可能变成了现实,通过canvas,可以很轻松实现这个功能.其实原理很简单:扫描图片相应位置的像素点,再计算出其灰度值,根 ...
 - 【配置】Spring和MyBatis整合
			
spring配置文件: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="h ...
 - (FFT) A * B Problem Plus
			
题目链接:https://cn.vjudge.net/contest/280041#problem/F 题目大意:给你两个数,求这俩数相乘的结果.(长度最长5000) 具体思路:硬算肯定是不行的,比如 ...
 - mysql内连接、左连接、右连接
			
内连接(INNER JOIN)(典型的连接运算,使用像 = 或 <> 之类的比较运算符).包括相等连接和自然连接. 内连接使用比较运算符根据每个表共有的列的值匹配两个表中的 ...