利用iscroll4實(shí)現(xiàn)輪播圖效果實(shí)例代碼
前言
iscroll之所以會(huì)誕生,主要是因?yàn)闊o(wú)論是在以前的iphone、ipod、android 或是更早前的移動(dòng)webkit都沒(méi)有提供一種原生的方式來(lái)支持在一個(gè)固定高度的容器內(nèi)滾動(dòng)內(nèi)容。相信很多人和我一樣,在使用iscroll的是時(shí)候只知道可以手動(dòng)滑動(dòng),不知道iscroll的輪播怎么實(shí)現(xiàn),那么以下就是我做的一個(gè)輪播效果,親測(cè)有效;
一、html代碼,當(dāng)然可以動(dòng)態(tài)添加下面的小圓點(diǎn)
<div id="wrapper"> <div id="scroller"> <ul id="thelist"> <li><strong>1.</strong> <em>A robot may not injure a human being or, through inaction, allow a human being to come to harm.</em></li> <li><strong>2.</strong> <em>A robot must obey any orders given to it by human beings, except where such orders would conflict with the First Law.</em></li> <li><strong>3.</strong> <em>A robot must protect its own existence as long as such protection does not conflict with the First or Second Law.</em></li> <li><strong>4Zeroth Law:</strong> <em>A robot may not harm humanity, or, by inaction, allow humanity to come to harm.</em></li> </ul> </div> </div> <div id="nav"> <div id="prev" onclick="myScroll.scrollToPage('prev', 0);return false">← prev</div> <ul id="indicator"> <li class="active">1</li> <li>2</li> <li>3</li> <li>4</li> </ul> <div id="next" onclick="myScroll.scrollToPage('next', 0);return false">next →</div> </div>
二、css代碼
<style type="text/css" media="all"> body, ul, li { padding: 10px; margin: 0; } body { font-size: 12px; -webkit-user-select: none; -webkit-text-size-adjust: none; font-family: helvetica; } #wrapper { width:100%; height: 160px; float: left; position: relative; /* On older OS versions "position" and "z-index" must be defined, */ z-index: 1; /* it seems that recent webkit is less picky and works anyway. */ overflow: hidden; background: #aaa; -webkit-border-radius: 10px; -moz-border-radius: 10px; -o-border-radius: 10px; border-radius: 10px; background: #e3e3e3; } #scroller { /*width: 2100px;*/ height: 100%; float: left; padding: 0; } #scroller ul { list-style: none; display: block; float: left; width: 100%; height: 100%; padding: 0; margin: 0; text-align: left; } #scroller li { -webkit-box-sizing: border-box; -moz-box-sizing: border-box; -o-box-sizing: border-box; box-sizing: border-box; display: block; float: left; /*width: 300px;*/ height: 160px; text-align: center; font-family: georgia; font-size: 18px; line-height: 140%; } #nav { width:100%; float: left; } #prev, #next { float: left; font-weight: bold; font-size: 14px; padding: 5px 0; width: 80px; } #next { float: right; text-align: right; } #indicator, #indicator > li { display: block; float: left; list-style: none; padding: 0; margin: 0; } #indicator { width: 110px; padding: 12px 0 0 30px; } #indicator > li { text-indent: -9999em; width: 8px; height: 8px; -webkit-border-radius: 4px; -moz-border-radius: 4px; -o-border-radius: 4px; border-radius: 4px; background: #ddd; overflow: hidden; margin-right: 4px; } #indicator > li.active { background: #888; } #indicator > li:last-child { margin: 0; } </style>
三、js代碼(這里我用的jquery 做的測(cè)試,你也可以根據(jù)自己的喜好選擇其他庫(kù))
<script src="js/jquery.js"></script> <script src="js/iscrollc.js"></script> <script type="text/javascript"> var myScroll; var timer; var i=0; var obj=$('#wrapper'); var obj_w=obj.outerWidth(true); var oli=obj.find('li'); var oli_l=oli.length; oli.outerWidth(obj_w); $('#scroller').width(oli_l*obj_w); function loaded() { myScroll = new iScroll('wrapper', { snap: true, momentum: false, hScrollbar: false, onScrollEnd: function () { document.querySelector('#indicator > li.active').className = ''; document.querySelector('#indicator > li:nth-child(' + (this.currPageX+1) + ')').className = 'active'; }, onBeforeScrollStart:function(){ clearInterval(timer); }, onTouchEnd:function(){ timer=setInterval(gund,2000); i=myScroll.currPageX }, }); timer=setInterval(gund,2000); function gund(){ //每5秒滾動(dòng) i++; if(i==oli_l){ i=0; myScroll.scrollToPage(0, 0, 1000); //滾回第一頁(yè) } else { myScroll.scrollToPage('next', 0); }; document.title=i }; }; document.addEventListener('DOMContentLoaded', loaded, false); </script>
html 和css不用說(shuō),都是行家,主要是js,首先是初始化,再根據(jù)iscorll提供的API修改相應(yīng)的代碼,這里主要用刀onBeforeScrollStart,onScrollEnd,onTouchEnd這三個(gè)事件,同時(shí)結(jié)合scrollToPage(),currPageX事件進(jìn)行對(duì)應(yīng)的定時(shí)修改,滑動(dòng)之后同步自動(dòng)滾動(dòng)的頁(yè)數(shù),就ok了,其實(shí)寫(xiě)這個(gè)主要是熟悉API。。。
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家學(xué)習(xí)或者使用iscorll能帶來(lái)一定的幫助,如果有疑問(wèn)大家可以留言交流。
- JQuery插件iScroll實(shí)現(xiàn)下拉刷新,滾動(dòng)翻頁(yè)特效
- iScroll中事件點(diǎn)擊觸發(fā)兩次解決方案
- IScroll5 中文API參數(shù)說(shuō)明和調(diào)用方法
- iscroll.js的上拉下拉刷新時(shí)無(wú)法回彈的解決方法
- 學(xué)習(xí)使用jquery iScroll.js移動(dòng)端滾動(dòng)條插件
- 基于HTML5上使用iScroll實(shí)現(xiàn)下拉刷新,上拉加載更多
- iScroll.js 使用方法參考
- jQuery iScroll.js 移動(dòng)端滾動(dòng)條美化插件
- 基于iscroll.js實(shí)現(xiàn)下拉刷新和上拉加載效果
- iscroll碰到Select無(wú)法選擇下拉刷新的解決辦法
相關(guān)文章
JavaScript去除數(shù)組里重復(fù)值的方法
這篇文章主要介紹了JavaScript去除數(shù)組里重復(fù)值的方法,涉及javascript針對(duì)數(shù)組操作的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-07-07解決layui的form里的元素進(jìn)行動(dòng)態(tài)生成,驗(yàn)證失效的問(wèn)題
今天小編就為大家分享一篇解決layui的form里的元素進(jìn)行動(dòng)態(tài)生成,驗(yàn)證失效的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-09-09如何基于javascript實(shí)現(xiàn)貪吃蛇游戲
這篇文章主要介紹了如何基于javascript實(shí)現(xiàn)貪吃蛇游戲,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-02-02ZK中使用JS讀取客戶端txt文件內(nèi)容問(wèn)題
這篇文章主要介紹了ZK中使用JS讀取客戶端txt文件內(nèi)容問(wèn)題,本文通過(guò)實(shí)例圖文相結(jié)合給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-11-11JavaScript事件監(jiān)聽(tīng)之鍵盤(pán)事件詳細(xì)介紹
在實(shí)際應(yīng)用中我們常常會(huì)遇到監(jiān)聽(tīng)按鍵輸入和鼠標(biāo)點(diǎn)擊事件,下面這篇文章主要給大家介紹了關(guān)于JavaScript事件監(jiān)聽(tīng)之鍵盤(pán)事件的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-06-06CSS3 動(dòng)畫(huà)卡頓性能優(yōu)化的完美解決方案
今天小編就為大家分享一篇關(guān)于css3 動(dòng)畫(huà)卡頓性能優(yōu)化的完美解決方案,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2018-09-09JavaScript關(guān)聯(lián)數(shù)組用法分析【概念、定義、遍歷】
這篇文章主要介紹了JavaScript關(guān)聯(lián)數(shù)組用法,結(jié)合實(shí)例形式分析了關(guān)聯(lián)數(shù)組的概念、定義與遍歷操作相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2017-03-03Web 開(kāi)發(fā)中Ajax的Session 超時(shí)處理方法
下面小編就為大家?guī)?lái)一篇Web 開(kāi)發(fā)中Ajax的Session 超時(shí)處理方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-01-01