轮播图插件swiper 的使用
引入文件(注:目前版本号为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 的使用的更多相关文章
- 兼容pc端和移动端的轮播图插件 swiper.js
swiper.js是一款纯JavaScript打造的滑动特效插件,可以用来实现检点轮播图,tab触摸滑动切换等常用效果.下载地址:https://www.swiper.com.cn/download/ ...
- 移动端web轮播图插件swiper,功能很强大
使用方法示例: <div class="swiper-container"> <div class="swiper-wrapper"> ...
- swiper轮播图插件
一.简介 ①Swiper是纯javascript打造的滑动特效插件,面向手机.平板电脑等移动终端.Swiper能实现触屏焦点图.触屏Tab切换.触屏多图切换等常用效果. ②Swiper 是一款免费以及 ...
- Vue轮播图插件---Vue-Awesome-Swiper
轮播图插件 Vue-Awesome-Swiper 地址:https://github.com/surmon-china/vue-awesome-swiper 安装:npm install vue-aw ...
- vue轮播图插件之vue-awesome-swiper
移动端轮播图插件,在使用iview图形界面插件中的carousel组件无法实现触摸滑动后,转而使用vue-awesome-swiper插件 1.npm安装 npm i vue-awesome-swip ...
- js 原生轮播图插件
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- jquery, js轮播图插件Swiper3
轮播图插件Swiper3 HTML代码 如果只是简单的使用轮播图,直接复制我的html代码就可以. 如果想要高级一些,就自己去看文档吧 <!DOCTYPE html> <html l ...
- 学习笔记: js插件 —— SuperSlide 2 (轮播图插件,PC用)
SuperSlide 2 轮播图插件,较老.但还好用. 适用于PC,是绑定到jquery上的方法: $.slide(); 如果在实际中找不到.slide方法,请检查jquery等.js文件的引入次序 ...
- 封装一个简单的原生js焦点轮播图插件
轮播图实现的效果为,鼠标移入左右箭头会出现,可以点击切换图片,下面的小圆点会跟随,可以循环播放(为了方便理解,没有补2张图做无缝轮播).本篇文章的主要目的是分享封装插件的思路. 轮播图我一开始是写成非 ...
随机推荐
- [转]BTC RPC API GetTransaction
本文转自: GetTransaction GetTransaction gettransaction调用获取指定钱包内交易的详细信息.该调用需要节点 启用钱包功能. 参数 TXID:要查看详情的交易I ...
- c#的WebService和调用
WebService: 1.新建一个空白web应用程序 2.在上面建立的web应用程序添加web服务 4.保存发布至 IIS Client: 1.新建一个程序(可以是winform.控制台.web) ...
- Android RecyclerView预览item
参考: Android Tools Attributes listItem 和 Sample Data 的用法 笔记 tools:text TextView可以实现预览,不影响实际的效果 例如: to ...
- 【Java每日一题】20170208
20170207问题解析请点击今日问题下方的“[Java每日一题]20170208”查看(问题解析在公众号首发,公众号ID:weknow619) package Feb2017; public cla ...
- class example of C++
#include <iostream> using namespace std; class Rectangle { int width, height; public: ...
- Js 控制随机数概率
如: 取 1~10 之间的随机数,那么他们的取值范围是: 整数 区间 概率 1 [0,1) 0.1 2 [1,2) 0.1 3 [2,3) 0.1 4 [3,4) 0.1 5 [4,5) 0.1 6 ...
- 事件处理程序 (DOM0级)
DOM0事件处理程序 每个元素都有自己的事件处理程序属性,那么直接获取对象,然后在对象上设置事件处理程序属性. 1:获取节点对象引用 2:在事件成员上设置处理函数,这时函数内部this指向节点对象. ...
- 一些你可能不熟悉的JS知识点总结
js代码暂时性死区 只要块级作用域存在let命令,它所声明的变量就“绑定”这个区域,不再受外部的影响.这么说可能有些抽象,举个例子: ? 1 2 3 4 5 var temp = 123; if(tr ...
- C#导入Excel、Excel导入、导入.xls 、导入.xlsx、Excel2003版本、Excel2007版本
C#导入Excel: 1.选择Excel 03版文件 2.选择需要读取数据的Excel工作表 3.选择工作表中需要读取的列 源码地址在图片下面,不要点击图片,点击下载地址跳转下载.
- 向后台提交数据:cookie,secure_cookie,
向后台提交数据除了前端url,form表单,Ajax外还可以用cookie,secure_cookie,提交更多信息可以在用cookie基础上用session, cookie,secure_cooki ...