最近做一个项目,需要用到轮播和全屏滑动功能,所以用到了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>
  <ul id="myMenu" class="menu-nav">
    <li class="active" @click="changeTab(0)">推荐</li>
    <li @click="changeTab(1)">软件</li>
  </ul>
<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使用纪实的更多相关文章

  1. vue引入swiper vue使用swiper vue脚手架使用swiper /引入js文件/引入css文件

    vue引入swiper  vue使用swiper  vue脚手架使用swiper /引入js文件/引入css文件 ------------------------------------------- ...

  2. Vue与swiper想结合封装全屏轮播插件

    项目需求介绍: 1.页面图文混排, 2.点击图片后全屏展示图片,并在底部显示文字,如果没有则不显示 3.关闭全屏后依然停留在上次浏览的位置 4.浏览图片时,不管点击的哪张图片,全屏展示的时候也要显示这 ...

  3. vue 使用swiper的一些问题(页面渲染问题)

    //Swiper上下滚动初始化 swiper_init(){ this.$nextTick(function(){ var mySwiper = new Swiper ('.swiper-contai ...

  4. vue awaresome swiper的使用

    main.jsimport VueAwesomeSwiper from 'vue-awesome-swiper'import 'swiper/dist/css/swiper.css'Vue.use(V ...

  5. 小程序和Vue利用swiper实现icons分页显示--动态计算

    这里发现小程序实现步骤,Vue与之类似 先上效果图: <view class="icons"> <swiper indicator-dots="true ...

  6. 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 ...

  7. 轮播模仿臭美APP,vue,swiper

    介绍:轮播使用了swiper,重要用于移动端滑动,详情可查看官网 1.首先用npm安装        npm install swiper 2.main.js 中引入CSS     import 's ...

  8. vue封装swiper

    参考:https://github.com/surmon-china/vue-awesome-swiper npm install vue-awesome-swiper --save 全局引入 imp ...

  9. vue添加swiper的正确方式亲测---切图网

    在vue项目中,我们在做图片轮播的方式和传统切图不同,传统切图中我们一般采用非常强大的swiper来完成,而在vue中一般依赖vue-awesome-swiper组件来完成(vue-awesome-s ...

  10. Vue整合swiper报错Could not compile template .....swiper\dist\css\swiper.css解决办法

    问题描述 今天做一个前端项目,安装幻灯片插件vue-awesome-swiper后 运行npm run dev 后报错如下: `ERROR Could not compile template E:\ ...

随机推荐

  1. Python常用模块-时间模块(time&datetime)

    Python常用模块-时间模块(time & datetime) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.初始time模块 #!/usr/bin/env pyth ...

  2. Linux ------清除内存中的cache

    首先以Centos6.4的来说,Centos7有些区别 一.buffer/cache/swap的介绍 #cat /etc/redhat-release  #查看系统版本 CentOS release ...

  3. bzoj千题计划267:bzoj3129: [Sdoi2013]方程

    http://www.lydsy.com/JudgeOnline/problem.php?id=3129 如果没有Ai的限制,就是隔板法,C(m-1,n-1) >=Ai 的限制:m减去Ai &l ...

  4. html template--(来自网易)

    html template   概述 包含完整头部信息和主体结构的HTML基础模板. 代码展示 <!DOCTYPE html> <html> <head> < ...

  5. javascript强大的日期函数

    var date = function( a, s ) { var d = s ? new Date( s ) : new Date(), f = d.getTime(); return ( '' + ...

  6. 20155212 2016-2017-2 《Java程序设计》第8周学习总结

    20155212 2016-2017-2 <Java程序设计>第8周学习总结 教材学习内容总结 Chapter14 1. Channel架构与操作 想要取得Channel的实作对象,可以使 ...

  7. 第7月第27天 c++11 boost

    1. #include <boost/asio.hpp> #include <cstdlib> #include <memory> namespace asio = ...

  8. Java笔记之java.lang.String#trim

    String的trim()方法是使用频率频率很高的一个方法,直到不久前我不确定trim去除两端的空白符时对换行符是怎么处理的点进去看了下源码的实现,才发现String#trim的实现跟我想像的完全不一 ...

  9. 永不改变的PCB设计黄金法则

    尽管目前半导体集成度越来越高,许多应用也都有随时可用的片上系统,同时许多功能强大且开箱即用的开发板也越来越可轻松获取,但许多使用案例中电子产品的应用仍然需要使用定制PCB.在一次性开发当中,即使一个普 ...

  10. java中final、finally、finalized使用方法

    首先需要明白  final和finally是关键字,finalize是一个方法. 1. final关键字 final可以修饰类.方法.变量, 修饰类表示类不可以被继承 修饰方法表示此方法不可以被重写( ...