详解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 相关文章推荐
由JavaScript技术实现的web小游戏(不含网游)
Jun 12 Javascript
jQuery控制图片的hover效果(smartRollover.js)
Mar 18 Javascript
JS保存、读取、换行、转Json报错处理方法
Jun 14 Javascript
Javascript基础教程之break和continue语句
Jan 18 Javascript
Javascript中数组方法汇总(推荐)
Apr 01 Javascript
js判断主流浏览器类型和版本号的简单实现代码
May 26 Javascript
AngularJS指令中的绑定策略实例分析
Dec 14 Javascript
Three.js实现简单3D房间布局
Dec 30 Javascript
layui 实现表格某一列显示图标
Sep 19 Javascript
Vue实现base64编码图片间的切换功能
Dec 04 Javascript
javaScript代码飘红报错看不懂?读完这篇文章再试试
Aug 19 Javascript
angular4实现带搜索的下拉框
Mar 25 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更新mysql后获取影响的行数发生异常解决方法
2013/03/28 PHP
分享20多个很棒的jQuery 文件上传插件或教程
2011/09/04 Javascript
Javascript 遮罩层和加载效果代码
2013/08/01 Javascript
使用JS CSS去除IE链接虚线框的三种方法
2013/11/14 Javascript
jQuery寻找n以内完全数的方法
2015/06/24 Javascript
jquery获取url参数及url加参数的方法
2015/10/26 Javascript
js实现新年倒计时效果
2015/12/10 Javascript
js实现无缝滚动特效
2015/12/20 Javascript
基于jquery实现轮播焦点图插件
2016/03/31 Javascript
bootstrap3 兼容IE8浏览器!
2016/05/02 Javascript
JavaScript中String对象的方法介绍
2017/01/04 Javascript
Bootstrap媒体对象学习使用
2017/03/07 Javascript
详解webpack + vue + node 打造单页面(入门篇)
2017/09/23 Javascript
详解使用React.memo()来优化函数组件的性能
2019/03/19 Javascript
layui自定义工具栏的方法
2019/09/19 Javascript
Node.js实现简单管理系统
2019/09/23 Javascript
element el-tree组件的动态加载、新增、更新节点的实现
2020/02/27 Javascript
用于统计项目中代码总行数的Python脚本分享
2015/04/21 Python
python装饰器与递归算法详解
2016/02/18 Python
Python数据库的连接实现方法与注意事项
2016/02/27 Python
Flask框架的学习指南之用户登录管理
2016/11/20 Python
Python OrderedDict的使用案例解析
2019/10/25 Python
Python模块的制作方法实例分析
2019/12/21 Python
django跳转页面传参的实现
2020/09/17 Python
python 怎样进行内存管理
2020/11/10 Python
css3的@media属性实现页面响应式布局示例代码
2014/02/10 HTML / CSS
英国演唱会订票网站:Ticket Selection
2018/03/27 全球购物
Fanatics英国官网:美国体育电商
2018/11/06 全球购物
前台领班岗位职责
2013/12/04 职场文书
商场总经理岗位职责
2014/02/03 职场文书
学习十八大坚定理想信念心得体会
2014/03/11 职场文书
校园歌咏比赛主持词
2014/03/18 职场文书
庆祝教师节演讲稿
2014/09/03 职场文书
神秘岛读书笔记
2015/07/01 职场文书
Python基础之tkinter图形化界面学习
2021/04/29 Python
Python matplotlib 利用随机函数生成变化图形
2022/04/26 Python