千鋒成都web前端培訓(xùn)學(xué)員分享:解析左右滑動輪播圖
首先,在解析輪播圖的實現(xiàn)原理之前,我們得知道什么是輪播圖。
顧名思義,輪播圖就是在網(wǎng)頁中能夠循環(huán)播放并且可以手動切換的圖片。輪播圖一般作為banner出現(xiàn)在網(wǎng)頁頭部靠下的位置,用以向用戶展示一些比較重要或熱門的東西。
輪播圖的播放效果有很多種,今天我們只取其中一種進(jìn)行原理解析,因為雖然效果略有不同,但是實現(xiàn)機(jī)制卻也相差無幾。
總體思路是:
1.html布局上:在最外層套一個盒子,暫且稱它為box,寬度為一張圖片的寬度,設(shè)置相對定位和溢出隱藏,為了方便,box里面放一個ul,設(shè)置絕對定位,ul里面便是一個li放一張圖片,然后讓li浮動,再給box定位一個左右按鈕和一個用來放控制圖片的小圓點的ol。
2.css設(shè)置樣式:定義一個active的class來控制被選中的小圓點的樣式
3.js控制輪播:
a準(zhǔn)備工作:引入一個運(yùn)動的插件,獲取需要的box、ul、li、ol、按鈕,獲取圖片的張數(shù)和寬度,然后克隆第一張圖片插入ul里面,給ul設(shè)置寬度為(圖片數(shù)量+1x圖片寬度),
定義一個空數(shù)組arr存儲小圓點,index存當(dāng)前圖片,btnIndex存小圓點下標(biāo),標(biāo)志位flag判斷圖片是否處于播放狀態(tài)。
b制作輪播:用for循環(huán)創(chuàng)建與圖片數(shù)量相等的小圓點,給它綁定點擊事件,并給第一個小圓點加上active的class,將創(chuàng)建的小圓點插入定義的數(shù)組,將小圓點從內(nèi)存里拿出來放到ol里面。
點擊小圓點控制圖片切換:點擊時先利用flag判斷當(dāng)前圖片是否處于播放狀態(tài),如果未播放就設(shè)為播放狀態(tài),然后將上一張圖片的active清除并給當(dāng)前圖片加上active,相應(yīng)的index和btnIndex也得變?yōu)楫?dāng)前的,用運(yùn)動插件控制ul進(jìn)行定位,動畫結(jié)束時將flag變?yōu)槲床シ艩顟B(tài)。
點擊向右切換:首先同樣判斷圖片的播放狀態(tài),清除上一張圖片對應(yīng)的小圓點的樣式,并讓圖片和小圓點對應(yīng)的index和btnIndex分別+1,然后判斷index等于圖片數(shù)量和大于圖片數(shù)量,如果等于,就讓btnIndex = 0,如果大于就讓index=btnIndex-=1
并讓ul的left為0,然后給當(dāng)前圖片對應(yīng)的小圓點添加active,并用運(yùn)動插件控制ul進(jìn)行定位,動畫結(jié)束時將flag變?yōu)槲床シ艩顟B(tài)。
點擊向左切換:同樣判斷圖片的播放狀態(tài),清除上一張圖片對應(yīng)的小圓點的樣式,并讓圖片和小圓點對應(yīng)的index和btnIndex分別-1,然后判斷
Index<0或者btnIndex<0,如果其中一個小于0,就將ul的left賦值為負(fù)的(圖片數(shù)量x圖片寬度),并讓index和btnIndex都等于(圖片數(shù)量-1), 然后給當(dāng)前圖片對應(yīng)的小圓點添加active,并用運(yùn)動插件控制ul進(jìn)行定位,動畫結(jié)束時將flag變?yōu)槲床シ艩顟B(tài)。
定時器控制圖片自動播放:創(chuàng)建一個定時器timer,當(dāng)鼠標(biāo)mouseenter時,在定時器里面調(diào)用向右切換的函數(shù),當(dāng)鼠標(biāo)mouseleave時,清除該定時器。
至此,一個完整的圖片輪播就完成了。在此附上一個完整輪播圖的代碼,代碼僅供幫助理解使用,切勿盲目復(fù)制。
css部分:
html部分:
Js部分:
引用的運(yùn)動插件部分:
本文章由千鋒成都web前端培訓(xùn)學(xué)員分享,學(xué)習(xí)web前端,可以參考千鋒提供的web前端學(xué)習(xí)路線,該學(xué)習(xí)路線對從零基礎(chǔ)小白到web前端初級開發(fā)工程師,web前端高級開發(fā)工程師,后面的web前端大神級開發(fā)工程師都有一個明確清晰的指導(dǎo),根據(jù)千鋒提供的web前端學(xué)習(xí)路線圖可以讓你對學(xué)習(xí)web前端開發(fā)需要掌握的知識有個清晰的了解,并快速入門web前端開發(fā)。

猜你喜歡LIKE
相關(guān)推薦HOT
更多>>
如何學(xué)編程基礎(chǔ)入門,怎么選擇適合自己的編程語言?
如何學(xué)編程基礎(chǔ)入門?零基礎(chǔ)想要學(xué)習(xí)編程,第一步先決定要學(xué)哪一門語言,了解它們的特點和應(yīng)用的領(lǐng)域;第二步確定學(xué)習(xí)方法,自學(xué)還要結(jié)合一些輔助...詳情>>
2023-03-06 14:57:00
成都java培訓(xùn)多少錢?選擇靠譜的培訓(xùn)機(jī)構(gòu)很重要
成都java人才需求量大,薪資水平高,發(fā)展前景良好,很多人希望能提升自己的專業(yè)技能,找到一份好工作,培訓(xùn)可以說是系統(tǒng)、快速地提高自身技術(shù)水...詳情>>
2023-02-13 17:41:00
參加Python培訓(xùn)班零基礎(chǔ)可以學(xué)會嗎?
隨著互聯(lián)網(wǎng)、云計算、大數(shù)據(jù)的飛速發(fā)展,在可以預(yù)見的未來,中國的人工智能產(chǎn)業(yè)將在諸多領(lǐng)域迎來新的發(fā)展機(jī)遇。也有越來越多的人選擇入行人工...詳情>>
2022-02-11 15:12:00
web前端培訓(xùn)班的費(fèi)用是多少?學(xué)習(xí)需要多久?
隨著市場上新型開發(fā)場景的不斷增多,企業(yè)對web前端開發(fā)技術(shù)的要求也在不斷的提升,對前端開發(fā)工程師的需求量在不斷的增多,市場上有一些小伙...詳情>>
2022-02-11 15:11:00熱門推薦
零基礎(chǔ)學(xué)習(xí)java多久可以學(xué)會?
沸成都h5培訓(xùn)課程去哪比較好?如何選擇?
熱零基礎(chǔ)小白入門h5如何學(xué)習(xí)?
熱計算機(jī)前端和后端區(qū)別,哪個好?
新如何成為編程程序員,應(yīng)該具備哪些素質(zhì)?
如何學(xué)編程基礎(chǔ)入門,怎么選擇適合自己的編程語言?
python一般用來做什么?可以滿足不同的應(yīng)用場合需要
嵌入式開發(fā)要學(xué)哪些課程?要了解對應(yīng)的學(xué)習(xí)要求
web前端培訓(xùn)多久?了解具體的培訓(xùn)時間
成都java培訓(xùn)多少錢?選擇靠譜的培訓(xùn)機(jī)構(gòu)很重要
java架構(gòu)師學(xué)習(xí)路線是什么?選擇合適的學(xué)習(xí)路線很重要
學(xué)程序員需要什么條件?要掌握哪些方面的基礎(chǔ)理論知識
程序員培訓(xùn)一般要多少錢?要考慮相應(yīng)的綜合性價比
學(xué)編程從哪方面入手?能有效的提升學(xué)習(xí)效率
技術(shù)干貨







快速通道 更多>>
-
課程介紹
點擊獲取大綱 -
就業(yè)前景
查看就業(yè)薪資 -
學(xué)習(xí)費(fèi)用
了解課程價格 -
優(yōu)惠活動
領(lǐng)取優(yōu)惠券 -
學(xué)習(xí)資源
領(lǐng)3000G教程 -
師資團(tuán)隊
了解師資團(tuán)隊 -
實戰(zhàn)項目
獲取項目源碼 -
開班地區(qū)
查看來校路線