详解swiper在vue中的应用(以3.0为例)


Posted in Javascript onSeptember 20, 2018

一、使用方法

官网地址

参考此文章(点击我)

二、常见情况

图片需要动态获取时

待数据加载成功且渲染完毕后,进行节点初始化。例:

axios.post(‘接口地址', 参数).then(response => {  
  this.pages = response.data; //pages 渲染数据的数组
  this.$nextTick(() => { //渲染结束
    // mySwiper 里面的属性按需配置,详情见官网
    let mySwiper = new Swiper(".swiper-container", { 
      initialSlide :0,//默认播放(值为图片下标)
      loop: false,//不循环
      speed: 600, //切换速度
      paginationClickable: true, //点击小点可以切换
    });
   });
});

当有 3 组图片需要依次播放时(多组以此类推)

情景:第 2 组图片滑动最后一张时,需要加载第 3 组图片;第 2 组图片滑动第一张时,需要加载第 1 组图片。

方法:在初始化的时候,配置回调函数onTouchStart(开始滑动的X轴值)和 onTouchEnd(结束滑动的X轴值)。用差值来判断是往前滑还是往后划。

this.$nextTick(() => {
  let mySwiper = new Swiper(".swiper-container", {
   observer: true, //修改swiper自己或子元素时,自动初始化swiper
   observeParents: true, //修改swiper的父元素时,自动初始化swiper     
   onTouchStart: function(swiper) {
    this.positionStart = swiper.getWrapperTranslate();
   },
   onTouchEnd: function(swiper) {
    this.positionEnd = swiper.getWrapperTranslate();
    if (this.positionStart > this.positionEnd && this.pages.length - 1 == this.mySwiper.activeIndex) { 
      //向后滑,加载后一组图片       
    } else if (mySwiper.activeIndex == 0 && this.positionStart < this.positionEnd) {
      //向前划,加载前一组图片  
    }
   }
  });
 });

这时,图片已经加载了另外一组图片,但是各组图片之间没有连贯起来,这就需要用到 slideTo方法去跳转(若加载第 3 组,则跳转到下标第 0 个;若加载第 1 组,则跳转到下标第 图片个数-1 个)。

mySwiper.slideTo('要跳转的图片下标', 10, false) // 10表示跳转速度;false 代表是否触发回到函数

数据方法配置

export default {
 name: '',
 data() {
  return {
   swiperOption: {
    // NotNextTick is a component's own property, and if notNextTick is set to true, the component will not instantiate the swiper through NextTick, which means you can get the swiper object the first time (if you need to use the get swiper object to do what Things, then this property must be true)
    // notNextTick是一个组件自有属性,如果notNextTick设置为true,组件则不会通过NextTick来实例化swiper,也就意味着你可以在第一时间获取到swiper对象,假如你需要刚加载遍使用获取swiper对象来做什么事,那么这个属性一定要是true
    notNextTick: true,
    // swiper configs 所有的配置同swiper官方api配置
    autoplay: 3000,
    // direction : 'vertical',
    effect:"coverflow",
    grabCursor : true,
    setWrapperSize :true,
    // autoHeight: true,
    // paginationType:"bullets",
    pagination : '.swiper-pagination',
    paginationClickable :true,
    prevButton:'.swiper-button-prev',
    nextButton:'.swiper-button-next',
    // scrollbar:'.swiper-scrollbar',
    mousewheelControl : true,
    observeParents:true,
    // if you need use plugins in the swiper, you can config in here like this
    // 如果自行设计了插件,那么插件的一些配置相关参数,也应该出现在这个对象中,如下debugger
    // debugger: true,
    // swiper callbacks
    // swiper的各种回调函数也可以出现在这个对象中,和swiper官方一样
    // onTransitionStart(swiper){
    //  console.log(swiper)
    // },
    // more Swiper configs and callbacks...
    // ...
   }
  }
 },components: {
 swiper,
 swiperSlide
},
 // you can find current swiper instance object like this, while the notNextTick property value must be true
 // 如果你需要得到当前的swiper对象来做一些事情,你可以像下面这样定义一个方法属性来获取当前的swiper对象,同时notNextTick必须为true
 computed: {
  swiper() {
   return this.$refs.mySwiper.swiper
  }
 },
 mounted() {
  // you can use current swiper instance object to do something(swiper methods)
  // 然后你就可以使用当前上下文内的swiper对象去做你想做的事了
  // console.log('this is current swiper instance object', this.swiper)
  // this.swiper.slideTo(3, 1000, false)
 }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
给网站上的广告“加速”显示的方法
Apr 08 Javascript
javascript 打印页面代码
Mar 24 Javascript
jQuery父级以及同级元素查找介绍
Sep 04 Javascript
jQuery+CSS实现的网页二级下滑菜单效果
Aug 25 Javascript
jquery实现的用户注册表单提示操作效果代码分享
Aug 28 Javascript
js仿支付宝填写支付密码效果实现多方框输入密码
Mar 09 Javascript
jquery操作checkbox火狐下第二次无法勾选的解决方法
Oct 10 Javascript
JavaScript判断浏览器对CSS3属性是否支持的多种方法
Nov 13 Javascript
bootstrap Validator 模态框、jsp、表单验证 Ajax提交功能
Feb 17 Javascript
Vue.directive自定义指令的使用详解
Mar 10 Javascript
Openlayers实现地图全屏显示
Sep 28 Javascript
vue+Element-ui前端实现分页效果
Nov 15 Javascript
Vue框架里使用Swiper的方法示例
Sep 20 #Javascript
vue项目中跳转到外部链接的实例讲解
Sep 20 #Javascript
Vue常见面试题整理【值得收藏】
Sep 20 #Javascript
用vue-cli开发vue时的代理设置方法
Sep 20 #Javascript
CSS3 动画卡顿性能优化的完美解决方案
Sep 20 #Javascript
vue.js中proxyTable 转发请求的实现方法
Sep 20 #Javascript
浅谈React Event实现原理
Sep 20 #Javascript
You might like
PHP中for循环语句的几种变型
2007/03/16 PHP
php使用curl和正则表达式抓取网页数据示例
2014/04/13 PHP
destoon安全设置中需要设置可写权限的目录及文件
2014/06/21 PHP
常见的5个PHP编码小陋习以及优化实例讲解
2021/02/27 PHP
收集的网上用的ajax之chat.js文件
2007/04/08 Javascript
js、css、img等浏览器缓存问题的2种解决方案
2013/10/23 Javascript
JS获取URL中的参数数据
2013/12/05 Javascript
JS清空多文本框、文本域示例代码
2014/02/24 Javascript
JavaScript中使用Math.PI圆周率属性的方法
2015/06/14 Javascript
基于JavaScript操作DOM常用的API小结
2015/12/01 Javascript
JQuery 两种方法解决刚创建的元素遍历不到的问题
2016/04/13 Javascript
在IE8上JS实现combobox支持拼音检索功能
2016/05/23 Javascript
jQuery简单实现title提示效果示例
2016/08/01 Javascript
AngularJS基础 ng-readonly 指令简单示例
2016/08/02 Javascript
JavaScript中全选、全不选、反选、无刷新删除、批量删除、即点即改入库(在yii框架中操作)的代码分享
2016/11/01 Javascript
jQuery Masonry瀑布流布局神器使用详解
2017/05/25 jQuery
使用Vue如何写一个双向数据绑定(面试常见)
2018/04/20 Javascript
[03:35]2018年度DOTA2最佳辅助位选手5号位-完美盛典
2018/12/17 DOTA
Python导入txt数据到mysql的方法
2015/04/08 Python
python使用pycharm环境调用opencv库
2018/02/11 Python
python实现手机通讯录搜索功能
2018/02/22 Python
Python实现的读取/更改/写入xml文件操作示例
2018/08/30 Python
一文了解python 3 字符串格式化 F-string 用法
2020/03/04 Python
Anaconda配置pytorch-gpu虚拟环境的图文教程
2020/04/16 Python
tensorflow指定CPU与GPU运算的方法实现
2020/04/21 Python
Python selenium爬取微信公众号文章代码详解
2020/08/12 Python
土耳其国际性时尚购物网站:Modanisa
2018/01/19 全球购物
大学生饮食配送创业计划书
2014/01/04 职场文书
2015年幼儿园毕业感言
2014/02/12 职场文书
社区春季防火方案
2014/06/02 职场文书
小学雷锋月活动总结
2014/07/03 职场文书
文员求职信
2014/07/15 职场文书
火烧圆明园观后感
2015/06/03 职场文书
奖学金发言稿(范文)
2019/08/21 职场文书
某某幼儿园的教育教学管理调研分析报告
2019/11/29 职场文书
Go gorilla/sessions库安装使用
2022/08/14 Golang