作者:佚名 文章來源: 更新時間:2006-3-1 | 透明漸變輪番顯示
點(diǎn) 擊 預(yù) 覽 效 果 頁 面...... 圖片以透明漸變輪番顯示的腳本效果,過去也有過類似的,可是 不能任意的定制增減圖片的數(shù)量,這次的是完美的。 制作方法: 在<head>標(biāo)簽下,粘貼代碼: <SCRIPT LANGUAGE="JavaScript"> // 設(shè)置輪番顯示速度 Set slideShowSpeed (milliseconds) var slideShowSpeed = 5000; // 勻滑轉(zhuǎn)換時間 Duration of crossfade (seconds) var crossFadeDuration = 3; // 指定圖像文件 Specify the image files var Pic = new Array(); // to add more images, just continue // the pattern, adding to the array below
Pic[0] = ‘1.jpg‘ Pic[1] = ‘2.jpg‘ Pic[2] = ‘3.jpg‘ Pic[3] = ‘4.jpg‘ Pic[4] = ‘5.jpg‘
// do not edit anything below this line var t; var j = 0; var p = Pic.length; var preLoad = new Array(); for (i = 0; i < p; i++) { preLoad = new Image(); preLoad.src = Pic; } function runSlideShow() { if (document.all) { document.images.SlideShow.style.filter="blendTrans(duration=2)"; document.images.SlideShow.style.filter="blendTrans(duration=crossFadeDuration)"; document.images.SlideShow.filters.blendTrans.Apply(); } document.images.SlideShow.src = preLoad[j].src; if (document.all) { document.images.SlideShow.filters.blendTrans.Play(); } j = j + 1; if (j > (p - 1)) j = 0; t = setTimeout(‘runSlideShow()‘, slideShowSpeed); } </script> 修改body: <body bgcolor="#FFFFFF" text="#000000" onLoad="runSlideShow()"> 將表格單元格設(shè)置名稱“id=VU”: <td id=VU> 在<img>中加入代碼:<img src="1.jpg" name=‘SlideShow‘>
至此,我們的效果便制作好了,你不仿試試! 點(diǎn) 擊 預(yù) 覽 效 果 頁 面......
制作方法: 1. 在<head>中插入代碼: <script language=‘javascript‘> isns = navigator.appName == "Netscape"; //定義播放圖片張數(shù) img1=new Image() img2=new Image() img3=new Image() img4=new Image() img5=new Image() //圖片路徑、文件名 img1.src=‘images/circul-side.gif‘ img2.src=‘images/css-manual.gif‘ img3.src=‘images/kpt7.jpg‘ img4.src=‘images/msn.jpg‘ img5.src=‘images/ps-<a class="Channel_KeyLink" href="http://www./it/UploadFiles_6101/200603/20060301230829716.jpg‘ nn=1 function%20change_img() { eval(‘document.pic.src=img‘+nn+‘.src‘); nn++; if(nn>5)%20nn=1 if(!isns) { pic.filters.item(0).apply() pic.style.visibility=‘visible‘ pic.filters.item(0).play() setTimeout(" pic.style.visibility="hidden" ?,4000);} else document.pic.visibility=‘visible‘ tt=setTimeout(‘change_img()‘,4000) } </script> 可以在代碼中按照中文介紹,修改相關(guān)信息。 2. 在<body>中加載:<body onload="change_img();"> 3. 插入第一張圖片,并命名:id="pic" 插入代碼:style=‘visibility:hidden;filter:revealtrans(duration=2.0,transition=12)‘ 參考圖片代碼: <img src="images/circul-side.gif" name="pic" width="120" height="90" id="pic" style=‘visibility:hidden;filter:revealtrans(duration=2.0,transition=12)‘>
制作完成。
觀看效果
使用CSS中的revealTrans濾鏡制作超弦圖片的播放 CSS中有revealTrans濾鏡(具體介紹請參看巧用CSS的 RevealTrans 濾鏡),也曾用該濾鏡制作過各種圖片播放的效果(類似于使用CSS濾鏡revealTrans制作圖片漸顯效果)。知道其在網(wǎng)頁中制作特效非常有用處。這次,我們準(zhǔn)備介紹另一種使用revealTrans濾鏡制作出超弦圖片播放的效果。 實(shí)現(xiàn)思路:使用revealTrans濾鏡制作出超弦圖片播放的效果,并每張圖片有各自的鏈接地址。 制作方法: 1、在<head>中插入JS代碼: <SCRIPT language=JavaScript1.2> function reapply(){ setTimeout("slideit()",800) return true } window.onerror=reapply </SCRIPT> <SCRIPT language=JavaScript1.1> <!-- //preload images var image1=new Image() image1.src="images/01.jpg" var image2=new Image() image2.src="images/02.jpg" var image3=new Image() image3.src="images/03.jpg" var image4=new Image() image4.src="images/04.jpg" var image5=new Image() image5.src="images/05.jpg" var image6=new Image() image6.src="images/06.jpg" var image7=new Image() image7.src="images/07.jpg" var image8=new Image() image8.src="images/08.jpg" var image9=new Image() image9.src="images/09.jpg" //--> </SCRIPT> 其中:images/big 完整代碼:<img src="images/circul-side.gif" width="120" height="90" border="0" style="FILTER: revealTrans(Duration=2, Transition=23)" name=slide> 4、給圖片加超鏈接:<a href="javascript :slidelink()"> 5、加入代碼: <SCRIPT> <!-- ////change number of images below var number_of_images=9 //change speed below (in seconds) var speed=3 var step=1 var whichimage=1 function slideit(){ if (!document.images) return if (document.all) slide.filters.item(0).Apply() document.images.slide.src=eval("image"+step+".src") if (document.all) slide.filters.item(0).Play() whichimage=step if (step<number_of_images) step++ else step=1 if (document.all) setTimeout("slideit()",speed*1000+3000) else setTimeout("slideit()",speed*1000) } function slidelink(){ if (whichimage==1) top.location.href="/index.html" if (whichimage==2) top.location.href="/news.html" if (whichimage==3) top.location.href="/game.html" if (whichimage==4) top.location.href="/music.html" if (whichimage==5) top.location.href="/sport.html" if (whichimage==6) top.location.href="/radio.html" if (whichimage==7) top.location.href="/travel.html" if (whichimage==8) top.location.href="/card.jsp" else if (whichimage==9) top.location.href="/study.html" } </SCRIPT> 其中:各鏈接地址相對應(yīng)<head>中插入的JS代碼中的圖片。 注意,頁面地址必須與圖片張數(shù)相對應(yīng)。本教學(xué)使用九張圖片,相應(yīng)就放置九個超鏈接地址。
DHTML幻燈片播放程序 這是一個幻燈片播放程序,也就是一圖片輪流播放的程序。我們在一些站點(diǎn)上可以看見這種形式的廣告播放條,大多是用CGI做的,也就是要服務(wù)器端支持CGI程序,如ASP、PHP、Perl等。但我們這里的實(shí)現(xiàn)方法無需CGI,用的僅是CSS的效果,再加上JavaScripts的控制。只要你的瀏覽器是IE 4.0以上或是Netscape 3.0以上的就可以了。只不過在這里我們用到了CSS的Filter濾鏡效果,該效果只能在IE中出現(xiàn)。有關(guān)CSS的Filter濾鏡效果,大家可以參看我的《CSS中Filter濾鏡詳解》,該文章在Yesky.com上已經(jīng)發(fā)表。好了,讓我們來做點(diǎn)準(zhǔn)備工作吧。 首先,為了制作這個效果,我們首先要打幾個尺寸一樣大小的圖片,讓其輪流播放。比如,我找了下面三個88x31的圖片做為所用的的圖片。 其次,讓我們再來復(fù)習(xí)一下CSS中Filter的圖片轉(zhuǎn)換濾鏡的知識: CSS中的顯示轉(zhuǎn)換濾鏡 顯示轉(zhuǎn)換濾鏡提供的是一種更為多變的轉(zhuǎn)換效果,它不像混合轉(zhuǎn)換濾鏡,只提供一種淡入淡出的效果,它還提供了更多的圖片轉(zhuǎn)換效果,它的語法是: Filter : RevealTrans ( duration = 轉(zhuǎn)換的秒數(shù),transition=轉(zhuǎn)換類型 ) 大家可以看見,它有一個轉(zhuǎn)換類型的參數(shù),這里,它提供了24種轉(zhuǎn)換類型,我們只需指定轉(zhuǎn)換類型的代號,就可以讓圖片按特有的轉(zhuǎn)換效果進(jìn)行轉(zhuǎn)換。下表就是24種轉(zhuǎn)換濾鏡的形式及其對應(yīng)的代號: 動態(tài)轉(zhuǎn)換濾鏡的屬性、方法和事件 屬性名 說明 取值 duration 圖像轉(zhuǎn)換的延遲時間,最小單位是毫秒,也就是小數(shù)點(diǎn)后第三位。 單位是秒,取值自然數(shù) enabled 指定是否應(yīng)用濾鏡效果 0表示不應(yīng)用,非0表示就用。 staus 傳回一個轉(zhuǎn)換狀態(tài) 0表示轉(zhuǎn)換停止 1表示顯示應(yīng)用的轉(zhuǎn)換濾鏡 2表示正在轉(zhuǎn)換中 方法名 說明 Apply 將濾鏡應(yīng)用到對象上 Play 開始轉(zhuǎn)換 Stop 停止轉(zhuǎn)換 事件名 說明 OnFilterChange 當(dāng)濾鏡轉(zhuǎn)變發(fā)生改變或是濾鏡完成時所觸發(fā)的事件
上面的CSS的轉(zhuǎn)換濾鏡如何被JavaScripts調(diào)用的知識我沒有過多的說明,我只是列舉了他的屬性方法和事件。在后面,我們用Javascript來控制他的時候,我會告訴大家如何用JavaScripts使其工作的。當(dāng)然這些濾鏡只能在IE4.0中瀏覽,NetScape不支持,不過,這并不影響netscape中的顯示,只不過Netscape中不會出現(xiàn)圖片轉(zhuǎn)換的效果了。 下面,我要開始最為核心的部分了,就是編寫javascript程序了。我們的思路是,可以定義一組圖片(若干張),當(dāng)頁面出現(xiàn)時先顯示第一張圖片,并預(yù)載入第二張圖片,第一張圖片載入后5秒鐘,如果第二張圖片也載入了,我們就開始自動切換到第二張圖片,此時并預(yù)載入第三張圖片,如果5秒鐘內(nèi)我們載入了第三張圖片,就自動切換到第三張圖片,如此播放下去直到最后一張又從頭開始。當(dāng)然,這是自動播放的了。我們還允許用戶手動進(jìn)行向前和向后的播放。 首先,我們要解決的問題是圖片的預(yù)載入,因?yàn)檫@決定了切換過程的流暢性和播放過程的完美性。要預(yù)載入一幅圖片很簡單,我們只要在內(nèi)存中新建一個圖片的實(shí)例變量,并把該變量指向一幅圖片,這樣,我們的瀏覽器便會自動載入這幅圖片的,這就是圖片的預(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() 任何人都能將假期的照片放在自己的網(wǎng)站上,但只有最酷的網(wǎng)絡(luò)構(gòu)建者會將他們設(shè)計成一場幻燈片秀。而且還不是那種簡單的一張照片一個HTML頁面的幻燈片,而是一個真正有動態(tài)感的幻燈片秀,每一個影像都下載到同一個HTML頁面去。我們會教你如何使用Dynamic HTML (DHTML)和Cascading Style Sheets(CSS)去構(gòu)建專屬你個人的幻燈片秀,讓你的朋友、家人和同事覺得更無聊,喔不!是印象更深刻。但是記??!因?yàn)檫@種幻燈片秀是用DHTML寫的,因此它只能在4.0或以上更新的瀏覽器版本才能看得到。 當(dāng)然嘍,這種幻燈片秀也有嚴(yán)肅的用途。只是我們現(xiàn)在還沒有想到而已。 步驟一 收集你已經(jīng)準(zhǔn)備放在網(wǎng)絡(luò)上的影像,而且將他們裁成相同的尺寸。確定尺寸范圍不超過640 x 480個像素,而且所有的相片的像素尺寸都要保持相同--如果照片尺寸大小不定,對觀眾而言會造成視覺上的不和諧。 步驟二 在你的頁首標(biāo)簽里,你首先要做的,就是在<STYLE>標(biāo)簽里指出使用的是CSS。在<STYLE>標(biāo)簽里,在你想要幻燈片出現(xiàn)的頁面設(shè)定位置,并決定一開頭是否要以空白背景圖表現(xiàn),或者直接秀出第一張幻燈片。請將下列程序代碼剪貼到你的頁面中,并使用你自己選擇的位置座標(biāo): <STYLE type="text/css"> <!-- .slides {position:absolute; left: 25%; top:25%; visibility:hidden} --> </STYLE> 步驟三 接下來立刻處理CSS的細(xì)節(jié)部分,還是在頁首標(biāo)簽中插入JavaScript。在var numSLides =之后,設(shè)定要秀出的幻燈片數(shù)目(別設(shè)太多,因?yàn)槊恳粡堈掌紩榫W(wǎng)頁增加可觀的KB數(shù))。我們的范例中有五張照片。以下是程序代碼: <SCRIPT language="JavaScript1.2"> var numSlides = 5; var currentSlide = numSlides; 步驟四 如果你想加入圖片的解釋說明文字,可以用下列的程序代碼,將我們的說明文字換成你自己的說明文字: var captionTxt = new Array(numSlides); function setUpCaptions() { captionTxt[1] = "39號碼頭入口。" captionTxt[2] = "海獅在碼頭附近漫步。" captionTxt[3] = "小船在碼頭*岸。" captionTxt[4] = "水底世界鯨魚壁畫。" captionTxt[5] = "海中小島或者是巖石。" } 步驟五 將這里所示的程序代碼貼到你網(wǎng)頁中的HTML文件,位置就在JavaScript的說明文字下。因?yàn)镹avigator 4.0和IE 4.0以不同的方式解讀CSS,我們的script就使用對象檢測(object detection)來決定呈現(xiàn)的模式。如果呈現(xiàn)的模式是Navigator,它還是可以定義某些特定的對象,使得IE程序代碼還是有作用。另外這也是整個程序代碼的結(jié)尾,所以一定要以</SCRIPT>標(biāo)簽來作結(jié)束: function setUp() { if (!document.all) { document.all = document; for (i=1;i<=numSlides;i++) document.all[("image"+i)]. style=document.all[("image"+i)]; } switchSlide(1); } function switchSlide(sDir) { newSlide = currentSlide + sDir; if (!newSlide) newSlide=numSlides; if (newSlide > numSlides) newSlide=1; document.all[("image"+newSlide)].style.visibility="visible"; document.all[("image"+currentSlide)]. style.visibility="hidden"; // 如果不要說明文字,請移除下一行: document.all["captions"].document.forCaptions.captionsText. value=captionTxt[newSlide]; currentSlide = newSlide; } //--> </script> 注意那些*近程序代碼結(jié)尾的注解:如果你沒有說明文字,那么就將它下面一行的文字移除。 步驟六 以</HEAD>關(guān)閉頁首標(biāo)簽,然后將下列的程序代碼,貼到網(wǎng)頁HTML文件中的body部分。 注意,程序代碼以個別的<DIV>標(biāo)簽區(qū)分每個影像,他們和正規(guī)的<IMG src>格式有關(guān)聯(lián): <BODY onLoad="setUp()"> <B> Builder.com slide show!</B> <DIV id="image5" class="slides"><IMG src="fifth.jpg"></DIV> <DIV id="image4" class="slides"><IMG src="fourth.jpg"></DIV> <DIV id="image3" class="slides"><IMG src="third.jpg"></DIV> <DIV id="image2" class="slides"><IMG src="second.jpg"></DIV> <DIV id="image1" class="slides"><IMG src="first.jpg"></DIV> 步驟七 觀眾必須以自己的步調(diào)來點(diǎn)按幻燈片,所以你得提供他們點(diǎn)按的東西。。你可以使用簡單老式的超鏈接,但是若有特殊的Previous和Next的GIF點(diǎn)選按鈕,就精巧多了。樣本程序代碼是使用一個table來連接next.gif和previuos.gif: <DIV style="position:absolute; top:350px; left:100px"> <A href="javascript :switchSlide(-1)"><IMG src="previous.gif" border=0></A> <A href="javascript :switchSlide(1)"><IMG src="next.gif" border=0></A> </DIV> 如果你不想用GIF文件來作Previous和Next點(diǎn)選按鈕,用文字取代上面的<IMG>標(biāo)簽。 步驟八 最后,在<TEXTAREA>輸入欲顯現(xiàn)的說明文字。你可以隨意決定<TEXTAREA>的尺寸大小,只要改變rows=和cols=的數(shù)字即可。以下是程序代碼: <DIV id="captions" style="position:absolute; left: 320px; top:75px"> <B>Picture caption</B> <FORM name=forCaptions> <TEXTAREA name="captionsText" wrap="virtual" rows=25 cols=20"></TEXTAREA> </FORM> </DIV>
|