详解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 相关文章推荐
JS获取整个页面文档的实现代码
Dec 15 Javascript
Extjs4 关于Store的一些操作(加载/回调/添加)
Apr 18 Javascript
Jquery中LigerUi的弹出编辑框(实现方法)
Jul 09 Javascript
浅谈使用MVC模式进行JavaScript程序开发
Nov 10 Javascript
javascript中this指向详解
Apr 23 Javascript
第九章之路径分页标签与徽章组件
Apr 25 Javascript
js eval函数使用,js对象和字符串互转实例
Mar 06 Javascript
Vue.js实例方法之生命周期详解
Jul 03 Javascript
bootstrap datetimepicker控件位置异常的解决方法
Nov 23 Javascript
vue+iview+less 实现换肤功能
Aug 17 Javascript
vue+elementUI实现图片上传功能
Aug 20 Javascript
vue实现配置全局访问路径头(axios)
Nov 01 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远程下载类分享
2016/04/13 PHP
在云虚拟主机部署thinkphp5项目的步骤详解
2017/12/21 PHP
html 锁定页面(js遮罩层弹出div效果)
2009/10/27 Javascript
随窗体滑动的小插件sticky源码
2013/06/21 Javascript
JavaScript访问CSS属性的几种方式介绍
2014/07/21 Javascript
jQuery实现鼠标划过展示大图的方法
2015/03/09 Javascript
基于PHP和Mysql相结合使用jqGrid读取数据并显示
2015/12/02 Javascript
获取select的value、text值的简单示例(jquery与javascript)
2016/12/07 Javascript
浅谈javascript中执行环境(作用域)与作用域链
2016/12/08 Javascript
详解JavaScript数组过滤相同元素的5种方法
2017/05/23 Javascript
AngularJS 最常用的八种功能(基础知识)
2017/06/26 Javascript
js排序与重组的实例讲解
2017/08/28 Javascript
使用JS模拟锚点跳转的实例
2018/02/01 Javascript
利用Node.js批量抓取高清妹子图片实例教程
2018/08/02 Javascript
[05:17]DOTA2誓师:今天我们在这里 明天TI4等我!
2014/03/26 DOTA
python库lxml在linux和WIN系统下的安装
2018/06/24 Python
Python异常模块traceback用法实例分析
2019/10/22 Python
Python selenium页面加载慢超时的解决方案
2020/03/18 Python
基于python调用jenkins-cli实现快速发布
2020/08/14 Python
详解使用canvas保存网页为pdf文件支持跨域
2018/11/23 HTML / CSS
小狗电器官方商城:中国高端吸尘器品牌
2017/03/29 全球购物
数据库测试通常都包括哪些方面
2015/11/30 面试题
机电一体化专业应届生求职信
2013/11/27 职场文书
打架检讨书100字
2014/01/19 职场文书
司法局群众路线教育实践活动整改措施
2014/09/17 职场文书
2014年党建工作汇报材料
2014/11/02 职场文书
高中生思想道德自我评价
2015/03/09 职场文书
幼儿园综治宣传月活动总结
2015/05/07 职场文书
复兴之路观后感
2015/06/02 职场文书
金榜题名主持词
2015/07/02 职场文书
情况说明书怎么写
2015/10/08 职场文书
反腐倡廉心得体会2016
2016/01/13 职场文书
2019年个人工作总结范文
2019/03/25 职场文书
这样写python注释让代码更加的优雅
2021/06/02 Python
pycharm无法安装cv2模块问题
2022/05/20 Python
SpringCloud超详细讲解Feign声明式服务调用
2022/06/21 Java/Android