一、实例化和导入

import Swiper from 'swiper';

let viewSwiper;

let previewSwiper;

在外面声明全局变量,然后在初始化方法里面实例化swiper实例,该初始化方法在mounted里面调用。

二、坑s

  1. 首先在vue里面初始化时数据肯定不是一成不变的,而是通过后台请求过来,或者父组件传入进来的,为了满足swiper能够动态监听数据,并刷新显示效果,需要添加上下面两个配置:

observer:true, //修改swiper自己或子元素时,自动初始化swiper
observeParents:true,//修改swiper的父元素时,自动初始化swiper
2. 当设置loop:true,可能会导致图片的点击事件的失效。原理是:swiper动态的渲染dom时,只是‘复制粘贴’,且并没有把dom中的监听事件给‘复制’进来,进而导致事件监听事件失效。
  在网上搜了好多,说是用swiper实例化中的点击回调函数(如下)
  但依旧监听不到这个回调,后来把实例化中的 allowTouchMove: false, 注释掉,发现竟然可以了,懵逼~
on:{
click: function(e) {
viewSwiper.slideTo(this.clickedIndex)
}
}

3.第三个问题是初始化数据之后,显示的确实最后一个slider,搞不懂后来网上寻找了一种方案,用slideTo(swiper自带)动态的还原到第一个slider。

this.$nextTick(function() {
this.initSowingImg();
setTimeout(function(){previewSwiper.slideTo(0,0)},500); // 解决初始化进来后默认是最后一个slide的问题
});

4.第四个坑是,后来想在其父级组件中实例化多个swiper实例,也就是多个轮播图,发现并不能行,一直报错,然后果断弃坑自己写了个简单版的。

5.实例参数如下:loop 失效,loop不管是false,还是true,效果都是不能循环的,搞不懂~  有没有大神解答下

 previewSwiper = new Swiper('.preview .swiper-container', {
slidesPerView: 'auto',
loop: false,
// allowTouchMove: false, 与回调冲突,设置true时,swiper点击回调经常失效。注释掉
observer:true, //修改swiper自己或子元素时,自动初始化swiper
observeParents:true,//修改swiper的父元素时,自动初始化swiper
on:{
click: function(e) {
viewSwiper.slideTo(this.clickedIndex)
}
}
})

  

swiper在vue中的使用 及 神坑的更多相关文章

  1. swiper在vue中的用法

    首先通过npm i vue-awesome-swiper --save 来在vue中下载插件 然后再main.js中引入 require('swiper/dist/css/swiper.css')im ...

  2. swiper在vue中正确的使用方法

    1.安装swiper,执行npm install vue-awesome-swiper --save命令 2.在main.js中添加下面三行 import 'swiper/dist/css/swipe ...

  3. 关于swiper在vue中不生效的问题

    在初始化swiper中加入这两个属性: observer:true observeParents:true var swiper = new Swiper('.swiper-container', { ...

  4. vue中引用swiper轮播插件

    有时候我们需要在vue中使用轮播组件,如果是在vue组件中引入第三方组件的话,最好通过npm安装,从而进行统一安装包管理. 申明:本文所使用的是vue.2x版本. 通过npm安装插件: npm ins ...

  5. vue中添加swiper轮播插件

    网上找了很多,最后还是官网最完整. https://github.com/surmon-china/vue-awesome-swiper 安装: 1.npm install vue-awesome-s ...

  6. 在Vue中使用了Swiper ,动态从后台获取数据的之后,swiper滑动失效??

    在Vue中使用了Swiper ,动态从后台获取数据的之后,swiper滑动失效?? 是因为swiper提前初始化了,那时候数据还没有完全出来.这里有两种解决办法 1. 使用vue提供的$nextTic ...

  7. Vue中怎样使用swiper组件?

    我用的VS Code编译器,首先打开终端,进入项目(我是在13-vue文件夹下面的elem中使用) D:\study\web\13-vue\elem> cnpm install vue-awes ...

  8. vue中允许你继续使用swiper的组件 vue-awesome-swiper---切图网

    swiper是一个在切图中好用到不行的图片轮播插件,包括3d轮播.h5滑屏等复杂应用都不在话下,到了vue项目一切逻辑完全颠覆了,没有获取dom的概念,还好有 vue-awesome-swiper组件 ...

  9. vue中遇到的坑!!!!!

    一 .vue安装的坑 报错时的常见问题 1.cnpm install 模块名 –save-dev(关于环境的,表现为npm run dev 启动不了)cnpm install 模块名 –save(关于 ...

随机推荐

  1. Python学习-23.Python中的函数——isinstance

    在Python中可以使用isinstance函数来判断某个值或变量是否为某个类型. 例子: print(isinstance(1,int)) print(isinstance(1,float)) pr ...

  2. python的数据存储

    Python存储数据 使用json.dump()和json.load() 不管专注的是什么,程序都把用户提供的信息存储在列表和字典等数据结构中.用户关闭程序时,你几乎总是要保存他们提供的信息:一种简单 ...

  3. 使用FFMpeg命令行录屏推rtmp流

    最近在做局域网内屏幕分享方面的东西,要把录制一台设备的屏幕然后实时推送给内网的一个或多个用户. 做了很多实验,效果还没有达到要求,这里分享一下推rtmp流的实验. 实验使用到的各种工具:FFmpeg. ...

  4. Map 综述(三):彻头彻尾理解 ConcurrentHashMap

    https://blog.csdn.net/justloveyou_/article/details/72783008

  5. Sorted方法排序用法

    listA = [3,4,5,3,2,1,] print(sorted(listA)) # [1, 2, 3, 3, 4, 5] listB =["a","z" ...

  6. Open vSwitch 2.9.2 创建 RPM 安装包

    1.安装依赖环境 yum install gcc make python-devel openssl-devel graphviz autoconf automake rpm-build redhat ...

  7. 【python入门】之教你编写自动获取金币脚本

    本文作者:青衫磊落 最近看到个特别全面源码分享网站,刚好有个项目是一直想做但是没有头绪的,就想下载学习一下.注册账号后,发现还需要若干金币.后来发现可以通过每隔一定时间发心情状态来获得金币,就打算写一 ...

  8. 十分钟用 Node 命令行工具打造 react-cli 脚手架

    如果你有以下想法: 每次新开项目需要copy一堆文件/文件夹,太烦!想要快速建立工程 用了vue-cli.react-app,羡慕!想要自己做一个 你只需花十分钟时间,做一个Node命令行工具,打造属 ...

  9. 更换SSL证书

    1.申请证书,需要提供完整域名(例如:xxx.aaa.com),会和证书完全匹配. 2.将证书上传到web服务器,例如我的nginx,在server中指定证书路径. 3.重启web服务器.(这个证书和 ...

  10. [转][SQL]如何实现存储过程中动态加入条件---没想到语句可以这么巧妙

    在存储过程过程中,如果要实现Select查询的where子句动态查询,可以用exec ( "select .... where" +@whereStr)这样的方式.但这样的话,感觉 ...