題目1:輪播的實(shí)現(xiàn)原理是怎樣的?如果讓你來(lái)實(shí)現(xiàn)缸濒,你會(huì)抽象出哪些函數(shù)(or接口)供使用蔗坯?(比如 play())
<div class="carousel">
<ul class="img-ct clearfix">
<li><a href="#">![](images/slide1.png)</a></li>
<li><a href="#">![](images/slide2.png)</a></li>
<li><a href="#">![](images/slide3.png)</a></li>
</ul>
<div class="arrow prev"><</div>
<div class="arrow next">></div>
<ul class="bullet clearfix">
<li class="active"></li>
<li></li>
<li></li>
</ul>
</div>
基本原理(左右滑動(dòng)):
1.首先,要?jiǎng)?chuàng)建一個(gè)容器用來(lái)展示輪播圖片的窗口(<div class="container">
)吮螺,因?yàn)橐淮沃徽故疽粡垐D片,所以設(shè)置其寬高為一張圖片的寬高帕翻,并設(shè)置其樣式overflow:hidden;position:relative;
鸠补。
2.其次,創(chuàng)建一個(gè)包裹輪播圖的容器(<ul class="img-ct">
)嘀掸,并設(shè)置其樣式為position:absolute
.
3.因?yàn)閳D片(<img>
)是包裹在元素li
里的紫岩,所以設(shè)置li
樣式float:left
使所有li
都在同行顯示。
4.此時(shí)睬塌,通過(guò)改變包裹圖片的容器(<ul class="img-ct"
)的position
的left
值泉蝌,使圖片達(dá)到在窗口(<div class="container"
)中看似向左或向右滑動(dòng)的效果。
根據(jù)基本原理揩晴,總的來(lái)說(shuō)勋陪,可以抽象出以下幾個(gè)函數(shù):
playNext(); // 點(diǎn)擊“下一個(gè)”按鈕("<div class="next"),使圖片向左滑動(dòng)
playPrev(); //點(diǎn)擊“上一個(gè)”按鈕("<div class="prev")硫兰,使圖片向右滑動(dòng)
setBullet(); //根據(jù)當(dāng)前展示圖片的索引诅愚,將`class=active`的樣式切換到對(duì)應(yīng)的tab
play(); // 利用setInterval函數(shù)設(shè)置定時(shí)器,使輪播自動(dòng)播放
stop(); // 利用clearInterval函數(shù)清除定時(shí)器劫映,使輪播停止播放违孝。
題目2:實(shí)現(xiàn)視頻中的左右滾動(dòng)無(wú)限循環(huán)輪播效果
jsbin-實(shí)現(xiàn)左右滾動(dòng)無(wú)限輪播