進(jìn)階17:輪播圖

題目1: 輪播的實現(xiàn)原理是怎樣的?如果讓你來實現(xiàn),你會抽象出哪些函數(shù)(or接口)供使用?(比如 play())

  • 實現(xiàn)原理,左右滾動輪播為例

    • 關(guān)于布局:
      1. 初步布局:首先父容器相對定位,設(shè)定好寬高(確定輪播框大小),設(shè)置overflow:hidden溢出隱藏,在父容器內(nèi)部設(shè)置img容器絕對定位,方便確定位置(注意不要限制死容器寬高,因為如果后面加入新的圖片得修改值),設(shè)置overflow:hidden形成BFC,防止因浮動產(chǎn)生高度坍塌
      2.img父容器內(nèi)部為多個包含a鏈接(方便跳轉(zhuǎn)鏈接)和img的li元素,給img設(shè)置好寬高,li元素左浮,橫向排成一排,左右輪播鍵和底部的圓點都可通過絕對定位確定位置.

    • 關(guān)于實現(xiàn)邏輯:
      1.通過移動img容器的位置來展現(xiàn)不同的圖片,達(dá)到切換效果.實現(xiàn)方法:在img容器中,clone最后一個元素至首部,clone第一個元素至尾部,通過計算
      (imgCount+2) * imgWidth得到img容器的寬度,imgCount為初始li元素的個數(shù).
      先確定好第一張展示圖片的位置為$imgCt.css({left: -imgWidth}),當(dāng)圖片左右切換,img容器位置左右加減.當(dāng)運動到clone首圖片時,立即跳轉(zhuǎn)到原來的首圖片,設(shè)置css屬性$imgCt.css({left: -imgWidth}).當(dāng)運動到clone尾圖片時,立即跳轉(zhuǎn)到原來的尾圖片$imgCt.css({left: -imgCount*imgWidth}),從而達(dá)到無限左右滾動效果,css屬性切換在人眼看來是連貫的.
      2.另外需要在展示不同圖片的時候,知道這是第幾張,設(shè)置標(biāo)記位,第一張標(biāo)記位為0,后面累加.最后一張為imgCount-1,通過不同的標(biāo)記位img容器移動對應(yīng)的位置,實現(xiàn)跳轉(zhuǎn)圖片.

  • 函數(shù)接口:

//自動循環(huán)播放
autoPlay()
  
//左右切換鍵
playNext()  //切換至下一張
playPre()   //切換至上一張

//底部導(dǎo)航按鈕切換效果
setBullet()

題目2: 實現(xiàn)視頻中的左右滾動無限循環(huán)輪播效果

實現(xiàn)方法1
實現(xiàn)方法2

題目3: 實現(xiàn)一個漸變輪播效果, 效果范例

實現(xiàn)代碼

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容