zepto中使用swipe.js制作輪播圖附swipeUp,swipeDown不起效果問(wèn)題
在移動(dòng)web開(kāi)發(fā)中,由于手機(jī)界面較小,為了能展示更多的圖片經(jīng)常使用輪播圖并且還需要考慮到手機(jī)流量的問(wèn)題,通過(guò)請(qǐng)教他人以及百度,個(gè)人感覺(jué)swipe.js比較好用。
它是一個(gè)純javascript工具,不需要跟其它js庫(kù)一起導(dǎo)入,同時(shí)兼容jQuery和zepto,壓縮版的大小只有6kb很適合移動(dòng)端的開(kāi)發(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樹(shù)模型最好不要改動(dòng),至于最里面的div可以更換其他,如li 等
僅僅只需要上訴的幾段代碼即可完成輪播圖的制作,但是在實(shí)際的項(xiàng)目中,特別是在首頁(yè)頂部的banner上還需要加入page的索引,還需要對(duì)控件的參數(shù)進(jìn)行配置,它的主要參數(shù)配置如下:
startSlide Integer (default:0) - 開(kāi)始滾動(dòng)的位置
speed Integer (default:300) - 動(dòng)畫(huà)滾動(dòng)的間隔(秒數(shù))
auto Integer - 開(kāi)始自動(dòng)幻燈片(以毫秒為單位幻燈片之間的時(shí)間)
continuous Boolean (default:true) - 創(chuàng)建一個(gè)無(wú)限的循環(huán)(當(dāng)滑動(dòng)到所有動(dòng)畫(huà)結(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)畫(huà)運(yùn)行結(jié)束的回調(diào)函數(shù)
而他的主要api函數(shù)如下:
prev():上一頁(yè)
next():下一頁(yè)
getPos():獲取當(dāng)前頁(yè)的索引
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è)問(wèn)題:
$(‘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)上是沒(méi)有的 去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)左右無(wú)縫輪播圖代碼
- JS輪播圖實(shí)現(xiàn)簡(jiǎn)單代碼
- JS實(shí)現(xiàn)自動(dòng)輪播圖效果(自適應(yīng)屏幕寬度+手機(jī)觸屏滑動(dòng))
- 原生js實(shí)現(xiàn)無(wú)限循環(huán)輪播圖效果
- 基于vue.js輪播組件vue-awesome-swiper實(shí)現(xiàn)輪播圖
- 原生JS無(wú)縫滑動(dòng)輪播圖
相關(guān)文章
javascript延時(shí)重復(fù)執(zhí)行函數(shù) lLoopRun.js
javascript延時(shí)重復(fù)執(zhí)行函數(shù) lLoopRun.js...2007-06-06Bootstrap modal 多彈窗之疊加顯示不出彈窗問(wèn)題的解決方案
Bootstrap modal 多彈窗之疊加顯示不出彈窗問(wèn)題,今天小編抽時(shí)間給大家分享下解決方案,需要的朋友參考下2017-02-02微信小程序scroll-view仿拼多多橫向滑動(dòng)滾動(dòng)條
這篇文章主要為大家詳細(xì)介紹了微信小程序scroll-view仿拼多多橫向滑動(dòng)滾動(dòng)條,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-07-07react-router-dom?v6?通過(guò)outlet實(shí)現(xiàn)keepAlive?功能的實(shí)現(xiàn)
本文主要介紹了react-router-dom?v6?通過(guò)outlet實(shí)現(xiàn)keepAlive功能,文中根據(jù)實(shí)例編碼詳細(xì)介紹的十分詳盡,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03Function.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-07div失去焦點(diǎn)事件實(shí)現(xiàn)思路
blur只是針對(duì)form表單控件的,而對(duì)于 span , div , li 之類的,則沒(méi)辦法觸發(fā)它們的動(dòng)作,本文有個(gè)示例,看看是怎么實(shí)現(xiàn)的2014-04-04如何寫(xiě)一個(gè)通用的JavaScript效果庫(kù)!(1/2)
如何寫(xiě)一個(gè)通用的JavaScript效果庫(kù)!(1/2)...2007-04-04