zepto中使用swipe.js制作輪播圖附swipeUp,swipeDown不起效果問題
在移動(dòng)web開發(fā)中,由于手機(jī)界面較小,為了能展示更多的圖片經(jīng)常使用輪播圖并且還需要考慮到手機(jī)流量的問題,通過請(qǐng)教他人以及百度,個(gè)人感覺swipe.js比較好用。
它是一個(gè)純javascript工具,不需要跟其它js庫一起導(dǎo)入,同時(shí)兼容jQuery和zepto,壓縮版的大小只有6kb很適合移動(dòng)端的開發(fā),它的git地址:https://github.com/thebird/swipe
在git上對(duì)其的使用方式介紹的相當(dāng)清楚,關(guān)鍵代碼如下
<div id='slider' class='swipe'>
<div class='swipe-wrap'>
<div></div>
<div></div>
<div></div>
</div>
</div>
.swipe {
overflow: hidden;
visibility: hidden;
position: relative;
}
.swipe-wrap {
overflow: hidden;
position: relative;
}
.swipe-wrap > div {
float:left;
width:100%;
position: relative;
}
window.mySwipe = Swipe(document.getElementById('slider'),opt);
其中.swipe嵌套.swipe-wrap這個(gè)html樹模型最好不要改動(dòng),至于最里面的div可以更換其他,如li 等
僅僅只需要上訴的幾段代碼即可完成輪播圖的制作,但是在實(shí)際的項(xiàng)目中,特別是在首頁頂部的banner上還需要加入page的索引,還需要對(duì)控件的參數(shù)進(jìn)行配置,它的主要參數(shù)配置如下:
startSlide Integer (default:0) - 開始滾動(dòng)的位置
speed Integer (default:300) - 動(dòng)畫滾動(dòng)的間隔(秒數(shù))
auto Integer - 開始自動(dòng)幻燈片(以毫秒為單位幻燈片之間的時(shí)間)
continuous Boolean (default:true) - 創(chuàng)建一個(gè)無限的循環(huán)(當(dāng)滑動(dòng)到所有動(dòng)畫結(jié)束時(shí)是否循環(huán)滑動(dòng))
disableScroll Boolean (default:false) - 當(dāng)滾動(dòng)滾動(dòng)條時(shí)是否停止幻燈片滾動(dòng)
stopPropagation Boolean (default:false) - 是否停止事件冒泡
callback Function - 幻燈片運(yùn)行中的回調(diào)函數(shù)
transitionEnd Function - 動(dòng)畫運(yùn)行結(jié)束的回調(diào)函數(shù)
而他的主要api函數(shù)如下:
prev():上一頁
next():下一頁
getPos():獲取當(dāng)前頁的索引
getNumSlides():獲取所有項(xiàng)的個(gè)數(shù)
slide(index, duration):滑動(dòng)方法
以下是偶在項(xiàng)目中的實(shí)際運(yùn)用的代碼
<div class="banner">
<div id="slider" class="swipe">
<ul class="swipe-wrap">
<li>
<a href="javascript:void(0)">
<img src="img/1.jpg">
</a>
</li>
<li>
<a href="javascript:void(0)">
<img src="img/2.jpg">
</a>
</li>
<li>
<a href="javascript:void(0)">
<img src="img/3.jpg">
</a>
</li>
<li>
<a href="javascript:void(0)">
<img src="img/4.jpg">
</a>
</li>
<li>
<a href="javascript:void(0)">
<img src="img/5.jpg">
</a>
</li>
</ul>
<ul class="slide-trigger">
<li class="cur"></li>
<li></li>
<li></li>
<li></li>
<li></li>
</ul>
</div>
</div>
.banner {
width: 100%;
position: relative;
}
.banner .swipe {
overflow: hidden;
position: relative;
}
.banner .swipe-wrap {
overflow: hidden;
position: relative;
list-style: none;
}
.banner .swipe-wrap li {
float: left;
position: relative;
}
.banner img {
width: 100%;
vertical-align: middle;
}
.banner .slide-trigger {
position: absolute;
left: 0;
bottom: 0;
width: 100%;
z-index: 10;
display: -webkit-box;
display: -moz-box;
display: -ms-flexbox;
display: -webkit-flex;
display: flex;
-webkit-box-pack: center;
-moz-box-pack: center;
-ms-flex-pack: center;
-webkit-justify-content: center;
justify-content: center;
list-style: none;
}
.banner .slide-trigger li {
width: 10px;
height: 10px;
background: #FFF;
margin: 5px;
-webkit-border-radius: 50%;
-moz-border-radius: 50%;
-ms-border-radius: 50%;
-o-border-radius: 50%;
border-radius: 50%;
}
.banner .slide-trigger .cur {
background: #2fc7c9;
}
var slider = $('#slider');
slider.find(".slide-trigger").find("li").eq(0).addClass("cur");
window.mySwipe = new Swipe(document.getElementById('slider'), {
speed: 400,
auto: 3000,
callback: function(index, elem) {
slider.find(".slide-trigger").find("li").eq(index).addClass("cur").siblings().removeClass("cur");
}
});
zepto中的swipeUp,swipeDown不起效果
我正在看zepto,然后看到里面一些事件的時(shí)候發(fā)現(xiàn)一個(gè)問題:
$(‘body').swipeUp(function(e){
alert(‘swipeUp');//偶爾有效
})
$(‘body').swipeDown(function(e){
alert(‘swipeDown');//偶爾有效
})
$(‘body').tap(function(){
alert(‘tap');//ok
})
$(‘body').swipeLeft(function(){
alert(‘swipeLeft');//ok
})
$(‘body').swipeRight(function(){
alert(‘swipeRight');//ok
})
在移動(dòng)端swipeUp,swipeDown不起效果,另外幾個(gè)有效,是怎么回事呢?
解決方案一:
zepto要引入 touch.js模塊 官網(wǎng)上是沒有的 去github下載 然后引入 touch.js即可
解決方案二:
是因?yàn)樽柚沽藶g覽器默認(rèn)的下拉事件,加上下面一段代碼。
document.addEventListener('touchmove', function (event) {
event.preventDefault();
}, false);
- 原生js實(shí)現(xiàn)輪播圖的示例代碼
- js實(shí)現(xiàn)支持手機(jī)滑動(dòng)切換的輪播圖片效果實(shí)例
- js實(shí)現(xiàn)輪播圖的完整代碼
- js實(shí)現(xiàn)點(diǎn)擊左右按鈕輪播圖片效果實(shí)例
- JS實(shí)現(xiàn)左右無縫輪播圖代碼
- JS輪播圖實(shí)現(xiàn)簡單代碼
- JS實(shí)現(xiàn)自動(dòng)輪播圖效果(自適應(yīng)屏幕寬度+手機(jī)觸屏滑動(dòng))
- 原生js實(shí)現(xiàn)無限循環(huán)輪播圖效果
- 基于vue.js輪播組件vue-awesome-swiper實(shí)現(xiàn)輪播圖
- 原生JS無縫滑動(dòng)輪播圖
相關(guān)文章
javascript延時(shí)重復(fù)執(zhí)行函數(shù) lLoopRun.js
javascript延時(shí)重復(fù)執(zhí)行函數(shù) lLoopRun.js...2007-06-06
Bootstrap modal 多彈窗之疊加顯示不出彈窗問題的解決方案
Bootstrap modal 多彈窗之疊加顯示不出彈窗問題,今天小編抽時(shí)間給大家分享下解決方案,需要的朋友參考下2017-02-02
微信小程序scroll-view仿拼多多橫向滑動(dòng)滾動(dòng)條
這篇文章主要為大家詳細(xì)介紹了微信小程序scroll-view仿拼多多橫向滑動(dòng)滾動(dòng)條,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-07-07
react-router-dom?v6?通過outlet實(shí)現(xiàn)keepAlive?功能的實(shí)現(xiàn)
本文主要介紹了react-router-dom?v6?通過outlet實(shí)現(xiàn)keepAlive功能,文中根據(jù)實(shí)例編碼詳細(xì)介紹的十分詳盡,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03
Function.prototype.call.apply結(jié)合用法分析示例
昨天在網(wǎng)上看到一個(gè)很有意思的js面試題:var a = Function.prototype.call.apply(function(a){return a;}, [0,4,3]);alert(a); 分析步驟如下,感興趣的朋友可以參考下哈2013-07-07
div失去焦點(diǎn)事件實(shí)現(xiàn)思路
blur只是針對(duì)form表單控件的,而對(duì)于 span , div , li 之類的,則沒辦法觸發(fā)它們的動(dòng)作,本文有個(gè)示例,看看是怎么實(shí)現(xiàn)的2014-04-04
如何寫一個(gè)通用的JavaScript效果庫!(1/2)
如何寫一個(gè)通用的JavaScript效果庫!(1/2)...2007-04-04

