Javascript實(shí)現(xiàn)圖片輪播效果(一)讓圖片跳動(dòng)起來(lái)
圖片輪播效果,在各大網(wǎng)站的首頁(yè)都能看到,比較常見(jiàn)。下面小編給大家分享這一效果的簡(jiǎn)單實(shí)現(xiàn)。
1.圖片跳動(dòng)起來(lái)
2.圖片序列控制的實(shí)現(xiàn)
3.前后按鈕控制的實(shí)現(xiàn)
這篇文章來(lái)看圖片按照間隔時(shí)間進(jìn)行切換.
我們先把結(jié)構(gòu)代碼完成,這個(gè)我就不做詳細(xì)的講解了.先給大家展示下效果圖:
代碼如下:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <style> * { box-sizing: border-box; } a { text-decoration: none; } ul,ol,li{ list-style: none; margin: 0; padding: 0; } #slider{ width: 800px; height: 300px; overflow: hidden; position: relative; margin: 0 auto; } #slider ul{ width: 2400px; position: relative; } #slider ul:after{ content: " "; width: 0; height: 0; display: block; } #slider ul li{ float: left; width: 800px; height: 300px; overflow: hidden; } #slider ul li img{ width: 100%; } #slider ol{ position: absolute; bottom: 10px; left: 46%; } #slider ol li{ display: inline-block; } #slider ol li a{ display: inline-block; padding:4px 8px; border-radius:15px; background-color: #000; color: #fff; } #slider .prev, #slider .next{ display: inline-block; position: absolute; top: 49%; background-color: #000; opacity: 0.6; color: #fff; padding: 3px; } #slider .prev{ left: 10px; } #slider .next{ right: 10px; } </style> </head> <body> <div id="slider"> <ul> <li> <img src="http://www.bates-hewett.com/images/sliders/slider-1.jpg" /> </li> <li> <img src="http://www.bates-hewett.com/images/sliders/slider-2.jpg" /> </li> <li> <img src="http://www.bates-hewett.com/images/sliders/slider-3.jpg" /> </li> </ul> <ol> <li> <a href="#">1</a> </li> <li> <a href="#">2</a> </li> <li> <a href="#">3</a> </li> </ol> <a href="#">上一張</a> <a href="#">下一張</a> </div> </body> </html>
好的,現(xiàn)在我們來(lái)通過(guò)JS控制圖片的跳轉(zhuǎn).
首先我們需要找到圖片所在的位置,這里我們是通過(guò)ul來(lái)進(jìn)行布局的所以首先得找到UL下的LI的數(shù)目
接著讓圖片一張一張的展示,我們使用了視窗的模式,就是遮罩層的模式.#slider是一個(gè)視窗,ul是視窗外的景色,而ul得景色是橫向排版的
然后就是讓外面的景色顯示為視窗的大小,也就是讓每一張圖片作為每一次的視窗景色,這里就是控制圖片的大小要與視窗同等大小.
上面講解的是一個(gè)概念,也就是布局的處理,下面我們JS的控制了,要實(shí)現(xiàn)圖片間隔的顯示不同.我們就需要用到JS的setInterval或者setTimeout.這里我們使用setInterval(因?yàn)檫@個(gè)用起來(lái)方便.)
每跳轉(zhuǎn)一次,我們控制的是UL的position的left,這樣就可以讓ul下的景色,在每一次都是顯示不一樣,而這個(gè)left是根據(jù)視窗的寬度來(lái)決定,第一張left當(dāng)然是-800 * 0 ,第二種就是 -800*1,第三種是-800*2...依次類推.那我們就可以得出下面的代碼
<script> (function(){ var slider = document.getElementById("slider"); var imgul = slider.getElementsByTagName("ul")[0]; var imglis = imgul.getElementsByTagName("li"); var len = imglis.length; var index = 0; setInterval(function(){ if(index >= len){ index = 0; } imgul.style.left = - (800 * index) + "px"; index++; },2000); })(); </script>
JS代碼這樣看起來(lái)就很簡(jiǎn)單了. 我這里是設(shè)置2秒跳轉(zhuǎn)依次,然后跳轉(zhuǎn)的次數(shù)大于等于圖片的數(shù)目后,讓其返回到第一張圖片.
以上內(nèi)容是小編給大家介紹Javascript實(shí)現(xiàn)圖片輪播效果(一)讓圖片跳動(dòng)起來(lái)的全部?jī)?nèi)容,希望對(duì)大家有所幫助。
相關(guān)文章
IE中鼠標(biāo)經(jīng)過(guò)option觸發(fā)mouseout的解決方法
這篇文章主要介紹了IE中鼠標(biāo)經(jīng)過(guò)option觸發(fā)mouseout的解決方法,分析了IE中鼠標(biāo)移到option時(shí)window.event.toElement返回值為null的原因及解決方法,需要的朋友可以參考下2015-01-01el-date-picker與el-time-picker的時(shí)間格式設(shè)置代碼
這篇文章主要介紹了el-date-picker與el-time-picker的時(shí)間格式設(shè)置代碼,代碼簡(jiǎn)單易懂,對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2023-11-11JS+CSS模擬可以無(wú)刷新顯示內(nèi)容的留言板實(shí)例
這篇文章主要介紹了JS+CSS模擬可以無(wú)刷新顯示內(nèi)容的留言板,涉及javascript操作dom元素、鼠標(biāo)事件及css樣式的技巧,需要的朋友可以參考下2015-03-03JS+CSS實(shí)現(xiàn)精美的二級(jí)導(dǎo)航效果代碼
這篇文章主要介紹了JS+CSS實(shí)現(xiàn)精美的二級(jí)導(dǎo)航效果代碼,涉及JavaScript基于鼠標(biāo)事件動(dòng)態(tài)變換元素樣式的技巧,非常簡(jiǎn)單實(shí)用,需要的朋友可以參考下2015-09-09將input框中輸入內(nèi)容顯示在相應(yīng)的div中【三種方法可選】
本篇文章主要介紹了在input框中輸入內(nèi)容,會(huì)相應(yīng)的顯示在下面的div中的不同做法:js方法;jQuery方法;AngularJs方法,具有很好的參考價(jià)值。下面跟著小編一起來(lái)看下吧2017-05-05