在網(wǎng)頁開發(fā)中,跑馬燈效果往往能夠為頁面增色不少,而javascript語言正是實現(xiàn)這一效果的最佳選擇之一。今天我們就來探討一下javascript如何實現(xiàn)圖片跑馬燈效果。
假設(shè)我們有一組圖片需要進(jìn)行跑馬燈展示,那么我們應(yīng)該如何才能夠?qū)崿F(xiàn)這一效果呢?首先,我們需要利用javascript來控制圖片的滾動,并且需要考慮如何讓不同的圖片有適當(dāng)?shù)拈g隔時間,從而營造出更流暢的過渡效果。接下來就是具體實現(xiàn)的過程。
我們可以采用如下代碼來實現(xiàn)圖片跑馬燈效果:
<script type="text/javascript">var speed = 50; var gap = 3000; var space = 5; var timer1, timer2; var mydiv = document.getElementById('mydiv'); var mymarquee = document.getElementById('mymarquee'); mymarquee.innerHTML += mymarquee.innerHTML; mydiv.scrollLeft = 0; function Marquee() { if (mydiv.scrollLeft % space == 0) { clearInterval(timer1); timer2 = setTimeout(Start, gap); } else { mydiv.scrollLeft++; if (mydiv.scrollLeft >= mymarquee.scrollWidth / 2) { mydiv.scrollLeft = 0; } } } function Start() { timer1 = setInterval(Marquee, speed); } function Stop() { clearInterval(timer1); clearTimeout(timer2); } Start(); </script><div id="mydiv" style="width: 100%; overflow: hidden;"><div id="mymarquee" ><img src="images/pic1.jpg"/><img src="images/pic2.jpg"/><img src="images/pic3.jpg"/><img src="images/pic4.jpg"/></div></div>以上代碼中,我們定義了一些變量,比如speed代表每次移動的像素值,gap代表每兩個圖片之間的間隔時間,space代表圖片之間的間距。接著,我們定義了Marquee()方法和Start()方法,分別對應(yīng)跑馬燈的滾動和開始方法。在Start()方法中,我們通過setInterval函數(shù)調(diào)用Marquee()方法來觸發(fā)跑馬燈的滾動動作。最后,我們將所有圖片都放置在一個div中,并且設(shè)置overflow為hidden,這樣就可以將超出div的部分隱藏起來了。 當(dāng)然,在實際的項目中,我們經(jīng)常需要更多的自定義設(shè)置,比如可以設(shè)置是否無限滾動、點擊暫停等等。但是,以上代碼已經(jīng)足夠滿足基本的跑馬燈需求了。如果您需要了解更多關(guān)于javascript跑馬燈的內(nèi)容,可以參考一些常用的js插件,如jQuery.cookie、jQuery.carouFredSel等。