引入文件(注:目前版本号为Swiper3.x)

<link rel="stylesheet" type="text/css" href="//static.chimeroi.com/lib/slide/swiper.css">
<script src="//static.chimeroi.com/lib/slide/swiper.min.js"></script>

结构

<div class="swiper-container">
<div class="swiper-wrapper">
<div class="swiper-slide">Slide 1</div>
<div class="swiper-slide">Slide 2</div>
<div class="swiper-slide">Slide 3</div>
</div>
<!-- 如果需要分页器 -->
<div class="swiper-pagination"></div> <!-- 如果需要导航按钮 -->
<div class="swiper-button-prev"></div>
<div class="swiper-button-next"></div> <!-- 如果需要滚动条 -->
<div class="swiper-scrollbar"></div>
</div>
<!-- 导航等组件可以放在container之外 -->

基本js配置

// selector 支持jquery的选择器
var mySwiper = new Swiper ('.// swiper-container', {
direction: 'vertical',
loop: true, // 如果需要分页器
pagination: '.swiper-pagination', // 如果需要前进后退按钮
nextButton: '.swiper-button-next',
prevButton: '.swiper-button-prev', // 如果需要滚动条
scrollbar: '.swiper-scrollbar',
})

项目中使用的坑

图片过大,需要使用类似全局函数resizeImg来控制图片显示时,开启了循环loop

此处需要可能有两个坑

1.图片重新设置宽高之后,宽度过大,会导致swiper-slide滑动时,图片未被截断。

方案:需要设置swiper-slide overflow:hidden;

2.图片load事件的监听

开启loop之后,swiper会深层拷贝swiper-slider内容的元素,默认会拷贝第一个和最后一个,通过视觉差,达到循环效果,直接在元素之上通过行内方法绑定的事件函数,不会直接,也就是不会执行onload 事件。动态追加的元素,可通过父元素的事件委托,但div不可委托图片的load事件。可以直接利用swiper插件提供的onInit 初始化回调函数,循环遍历包括深层拷贝的图片,然后resize。

例如:

 ```js
var mySwiper = new Swiper('#swiper', {
loop: headBannerLength>1,
autoplay:5000,
onInit: function(){
$('#swiper img').each(function(){
resizeImg(this, width, height);
})
}
});
```

开启了loop与react 配合使用的bug

react dom 渲染 时机与 swiper 深层dom拷贝相冲突,导致设置了loop循环时,会拷贝的react 渲染出来的svg 不完全,导致显示bug。
解决方案:在swiper 初始化后回掉react 渲染函数,并且将id挂载点改为class。
部分代码:
```js
// 循环
function initHousingMarket (){
Array.prototype.forEach.call(document.getElementsByClassName('ct-housing-pie'),function(e,i){
initChart(e, dataHousingMarket, COLOR_PIE, 'Number of Various<br>Properties', undefined, undefined, true);
});
} function initChart(elem, datas, colors, title, valueKey, titleSize, padding) {
if (!elem) return;
valueKey = valueKey || "y"
removeZeroData(datas);
// 挂载前清空,然后再渲染。不直接全部回调的原因是,加载速度原因
elem.innerHTML = '';
if (!datas.length) {
elem = elem.parentNode;
elem.parentNode.removeChild(elem);
return;
}
}
```

前进后退按钮再swiper 之外的时候

只需要改变,结构与样式。配置不变。

<div class="swiper-button-prev"></div>
<div class="swiper-button-next"></div>

轮播图插件swiper 的使用的更多相关文章

  1. 兼容pc端和移动端的轮播图插件 swiper.js

    swiper.js是一款纯JavaScript打造的滑动特效插件,可以用来实现检点轮播图,tab触摸滑动切换等常用效果.下载地址:https://www.swiper.com.cn/download/ ...

  2. 移动端web轮播图插件swiper,功能很强大

    使用方法示例: <div class="swiper-container"> <div class="swiper-wrapper"> ...

  3. swiper轮播图插件

    一.简介 ①Swiper是纯javascript打造的滑动特效插件,面向手机.平板电脑等移动终端.Swiper能实现触屏焦点图.触屏Tab切换.触屏多图切换等常用效果. ②Swiper 是一款免费以及 ...

  4. Vue轮播图插件---Vue-Awesome-Swiper

    轮播图插件 Vue-Awesome-Swiper 地址:https://github.com/surmon-china/vue-awesome-swiper 安装:npm install vue-aw ...

  5. vue轮播图插件之vue-awesome-swiper

    移动端轮播图插件,在使用iview图形界面插件中的carousel组件无法实现触摸滑动后,转而使用vue-awesome-swiper插件 1.npm安装 npm i vue-awesome-swip ...

  6. js 原生轮播图插件

    <!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  7. jquery, js轮播图插件Swiper3

    轮播图插件Swiper3 HTML代码 如果只是简单的使用轮播图,直接复制我的html代码就可以. 如果想要高级一些,就自己去看文档吧 <!DOCTYPE html> <html l ...

  8. 学习笔记: js插件 —— SuperSlide 2 (轮播图插件,PC用)

    SuperSlide 2  轮播图插件,较老.但还好用. 适用于PC,是绑定到jquery上的方法: $.slide(); 如果在实际中找不到.slide方法,请检查jquery等.js文件的引入次序 ...

  9. 封装一个简单的原生js焦点轮播图插件

    轮播图实现的效果为,鼠标移入左右箭头会出现,可以点击切换图片,下面的小圆点会跟随,可以循环播放(为了方便理解,没有补2张图做无缝轮播).本篇文章的主要目的是分享封装插件的思路. 轮播图我一开始是写成非 ...

随机推荐

  1. 【转载】ASP.NET生成图片的缩略图

    图片处理是C#程序开发中时常会涉及到的一个业务,除了图像的上传.保存以及下载等功能外,根据上传的图片生成一个缩略图也是常见业务,在C#语言中,可以通过Image类提供的相关方法对图片进行操作,如指定宽 ...

  2. Tree View控件(添加,移除,设置图标)

    添加 父节点,并为父节点添加子节点 private void button1_Click(object sender, EventArgs e) { TreeNode tn1 = treeView1. ...

  3. [android] 采用pull解析xml文件

    /***********2016年5月6日 更新**********************/ 知乎:Android 中有哪几种解析 xml 的类,官方推荐哪种 ? 以及它们的原理和区别? 刘吉财: ...

  4. Java学习笔记之——Manth类和String类

    (1) Math:常用的数学运算,都是静态方法 方法摘要 static double abs(double a) 返回 double 值的绝对值. static float abs(float a) ...

  5. JavaScript中判断整字类型最简洁的实现方法

    这篇文章主要介绍了JavaScript中判断整字类型最简洁的实现方法,本文给出多个判断整数的方法,最后总结出一个最短.最简洁的实现方法,需要的朋友可以参考下 我们知道JavaScript提供了type ...

  6. 淘宝cnpm

    npm install -g cnpm --registry=https://registry.npm.taobao.org

  7. 【代码笔记】Web-JavaScript-JavaScript错误

    一,效果图. 二,代码. <!DOCTYPE html> <html> <head> <meta charset="utf-8"> ...

  8. PHP对接淘宝客api完成APP引流优惠券

    淘宝客现在对多数人来说已经耳熟能详了,属于CPS(Cost Per Sale),一种网络广告收费标准,以实际销售产品数量来换算广告刊登金额.其他收费标准还有常见的CPC(Cost Per Click ...

  9. Mycat 中间件配置初探与入门操作

    Mycat中间件配置初探与入门操作 By:授客 QQ:1033553122 实践环境 Mycat-server-1.5.1-RELEASE-20161130213509-win.tar.gz 下载地址 ...

  10. ie6常见的兼容性问题

    1.<!DOCTYPE HTML>文档类型的声明. 产生条件:IE6浏览器,当我们没有书写这个文档声明的时候,会触发IE6浏览器的怪异解析现象: 解决办法:书写文档声明. 2.不同浏览器当 ...