** 1典格、 輪播的實(shí)現(xiàn)原理是怎樣的祖娘?如果讓你來實(shí)現(xiàn)禀晓,你會(huì)抽象出哪些函數(shù)(or接口)供使用?(比如 play())**####
輪播實(shí)現(xiàn)原理:
1.將圖片排成一行;
2.創(chuàng)建一個(gè)可視化窗口四濒,窗口之外的區(qū)域隱藏坎缭;
3.在第一張圖片的前面克隆最后一個(gè)圖片元素,在最后一個(gè)圖片后面克隆第一個(gè)元素;
4.利用jQuery動(dòng)畫以及定位就能實(shí)現(xiàn)無限循環(huán)的輪播;
我們可以抽象出來的代碼有很多,比如antoPlay()吟宦、playNext()、playPre()
(比如play)
實(shí)現(xiàn)一個(gè)play(index)函數(shù)
傳入要顯示的圖片頁(yè)數(shù)
function play(index){
if(curPageIndex === index){
return;
}
if(isAnimate) return;
isAnimate = true;
$imgCt.animate({
left: '+=' + (curPageIndex - index) * $firstImg.width()
}, function(){
curPageIndex = index;
if(curPageIndex === imgLength){
$imgCt.css({
left: - $firstImg.width()
})
curPageIndex = 0;
}
else if(curPageIndex === -1){
$imgCt.css({
left: - $firstImg.width() * imgLength
})
curPageIndex = imgLength -1 ;
}
isAnimate = false;
})
}
輪播的基本原理是先并列要輪播的東西涩维,然后設(shè)置為不可見或在可見區(qū)域之外殃姓,最后按順序使之可見或者移放至可見區(qū)域之內(nèi)。以上就是核心代碼的思想瓦阐,可封裝為一個(gè)函數(shù)蜗侈。