下面,我要開始最為核心的部分了,是編寫javascript程序了。我們的思路是,可以定義一組圖片(若干張),當(dāng)頁面出現(xiàn)時先顯示張圖片,并預(yù)載入第二張圖片,張圖片載入后5秒鐘,如果第二張圖片也載入了,我們開始自動切換到第二張圖片,此時并預(yù)載入第三張圖片,如果5秒鐘內(nèi)我們載入了第三張圖片,自動切換到第三張圖片,如此播放下去直到一張又從頭開始。當(dāng)然,這是自動播放的了。我們還允許用戶手動進(jìn)行向前和向后的播放。
首先,我們要解決的問題是圖片的預(yù)載入,因為這決定了切換過程的流暢性和播放過程的完美性。要預(yù)載入一幅圖片很簡單,我們只要在內(nèi)存中新建一個圖片的實例變量,并把該變量指向一幅圖片,這樣,我們的瀏覽器便會自動載入這幅圖片的,這是圖片的預(yù)載入。用javascript寫出來是下面這個樣子:
var myImage = new Image() myImage.src = "someImage.gif"
然后,我們還要知道,圖片是否載入了嗎?如果載入了,我們顯示,如果沒載入,那么要出錯了。于是我們還要改一下上面的代碼,在其中加入兩條語句,所以,這段JavaScript變成下面的樣子了:
var img = new Image() img.onload = doReadyImage img.onerror = doErrorDisplay img.src = "someImage.gif"
我們加入了圖片的onload和onerror事件,分別代表是否預(yù)載和預(yù)載出錯的事件。這兩條句語必需在img.src語句的前面。否則的話,圖片預(yù)載會出錯。
是我們的圖片切換程序了,在前面,我們復(fù)習(xí)了CSS中Filter轉(zhuǎn)換濾鏡的各種效果,這里我們用代號為23的隨機(jī)效果,下面,是我們?yōu)樵贗E中這種效果所寫的JavaScript程序:
if (document.images.slideShow.filters) { document.images.slideShow.filters[0].Stop() document.images.slideShow.filters[0].Apply() // 使用隨機(jī)的轉(zhuǎn)換效果 document.images.slideShow.filters.revealTrans.transition=23 }
document.images.slideShow.src = sSource // 開始進(jìn)行轉(zhuǎn)換效果的執(zhí)行 if (document.images.slideShow.filters) document.images.slideShow.filters[0].Play()