利用iscroll4實(shí)現(xiàn)輪播圖效果實(shí)例代碼
前言
iscroll之所以會(huì)誕生,主要是因?yàn)闊o論是在以前的iphone、ipod、android 或是更早前的移動(dòng)webkit都沒有提供一種原生的方式來支持在一個(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ù)自己的喜好選擇其他庫)
<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); //滾回第一頁
} else {
myScroll.scrollToPage('next', 0);
};
document.title=i
};
};
document.addEventListener('DOMContentLoaded', loaded, false);
</script>
html 和css不用說,都是行家,主要是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)的頁數(shù),就ok了,其實(shí)寫這個(gè)主要是熟悉API。。。
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家學(xué)習(xí)或者使用iscorll能帶來一定的幫助,如果有疑問大家可以留言交流。
- JQuery插件iScroll實(shí)現(xiàn)下拉刷新,滾動(dòng)翻頁特效
- iScroll中事件點(diǎn)擊觸發(fā)兩次解決方案
- IScroll5 中文API參數(shù)說明和調(diào)用方法
- iscroll.js的上拉下拉刷新時(shí)無法回彈的解決方法
- 學(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無法選擇下拉刷新的解決辦法
相關(guān)文章
JavaScript前端實(shí)現(xiàn)GIF圖片循環(huán)播放
使用 img 加載 GIF 圖片,內(nèi)容只會(huì)播放一次,之后就會(huì)自動(dòng)暫停,所以這篇文章為大家介紹了如何使用JavaScript實(shí)現(xiàn)GIF圖片循環(huán)播放吧2025-03-03
微信小程序返回上一頁刷新組件數(shù)據(jù)的示例代碼
這篇文章主要介紹了微信小程序返回上一頁刷新組件數(shù)據(jù)的相關(guān)資料,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友參考下吧2024-03-03
jQuery中 DOM節(jié)點(diǎn)操作方法大全
本文給大家介紹了jQuery中 DOM節(jié)點(diǎn)操作方法大全,感興趣的朋友一起看看吧2017-10-10
Javascript實(shí)現(xiàn)快速排序(Quicksort)的算法詳解
排序算法(Sorting algorithm)是計(jì)算機(jī)科學(xué)最古老、最基本的課題之一,要想成為合格的程序員,就必須理解和掌握各種排序算法。2015-09-09
javascript實(shí)現(xiàn)無縫上下滾動(dòng)特效
這篇文章主要介紹了javascript實(shí)現(xiàn)無縫上下滾動(dòng)特效的相關(guān)資料,需要的朋友可以參考下2015-12-12
layui使用form表單實(shí)現(xiàn)post請(qǐng)求頁面跳轉(zhuǎn)的方法
今天小編就為大家分享一篇layui使用form表單實(shí)現(xiàn)post請(qǐng)求頁面跳轉(zhuǎn)的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-09-09

