下面介紹三個 JavaScript 背景動畫,製作方法都非常簡單
首先開啟一個新的 HTML 檔案 (檔案 / 開新檔案)
由於這幾個動畫在暗色的背景上比較出色,所以請你用 修改/頁面屬性 來變更背景圖為
請按下圖工具列按鈕來開啟 HTML 編輯視窗
你會看到如下畫面:
請用滑鼠選取複製下列 JavaScript,拷貝到上圖中第九列的位置
<SCRIPT language=JavaScript> <!-- Begin var no = 50; var speed =30; var ns4up = (document.layers) ? 1 : 0; var ie4up = (document.all) ? 1 : 0; var s, x, y, sn, cs; var a, r, cx, cy; var i, doc_width = 800, doc_height = 600; if (ns4up) { doc_width = self.innerWidth; doc_height = self.innerHeight; } else if (ie4up) { doc_width = document.body.clientWidth; doc_height = document.body.clientHeight; } x = new Array(); y = new Array(); r = new Array(); cx = new Array(); cy = new Array(); s = 8; for (i = 0; i < no; ++ i) { initRain(); if (ns4up) { if (i == 0) { document.write("<layer name=\"dot"+ i +"\" left=\"1\" "); document.write("top=\"1\" visibility=\"show\"><font color=\"6dbbf\">"); document.write(",</font></layer>"); } else { document.write("<layer name=\"dot"+ i +"\" left=\"1\" "); document.write("top=\"1\" visibility=\"show\"><font color=\"6dbbf\">"); document.write(",</font></layer>"); } } else if (ie4up) { if (i == 0) { document.write("<div id=\"dot"+ i +"\" style=\"POSITION: "); document.write("absolute; Z-INDEX: "+ i +"; VISIBILITY: "); document.write("visible; TOP: 15px; LEFT: 15px;\"><font color=\"6dbbf\">"); document.write(",</font></div>"); } else { document.write("<div id=\"dot"+ i +"\" style=\"POSITION: "); document.write("absolute; Z-INDEX: "+ i +"; VISIBILITY: "); document.write("visible; TOP: 15px; LEFT: 15px;\"><font color=\"6dbbf\">"); document.write(",</font></div>"); } } } function initRain() { a = 6; r[i] = 1; sn = Math.sin(a); cs = Math.cos(a); cx[i] = Math.random() * doc_width + 1; cy[i] = Math.random() * doc_height + 1; x[i] = r[i] * sn + cx[i]; y[i] = cy[i]; } function makeRain() { r[i] = 1; cx[i] = Math.random() * doc_width + 1; cy[i] = 1; x[i] = r[i] * sn + cx[i]; y[i] = r[i] * cs + cy[i]; } function updateRain() { r[i] += s; x[i] = r[i] * sn + cx[i]; y[i] = r[i] * cs + cy[i]; } function raindropNS() { for (i = 0; i < no; ++ i) { updateRain(); if ((x[i] <= 1) || (x[i] >= (doc_width - 20)) || (y[i] >= (doc_height - 20))) { makeRain(); doc_width = self.innerWidth; doc_height = self.innerHeight; } document.layers["dot"+i].top = y[i]; document.layers["dot"+i].left = x[i]; } setTimeout("raindropNS()", speed); } function raindropIE() { for (i = 0; i < no; ++ i) { updateRain(); if ((x[i] <= 1) || (x[i] >= (doc_width - 20)) || (y[i] >= (doc_height - 20))) { makeRain(); doc_width = document.body.clientWidth; doc_height = document.body.clientHeight; } document.all["dot"+i].style.pixelTop = y[i]; document.all["dot"+i].style.pixelLeft = x[i]; } setTimeout("raindropIE()", speed); } if (ns4up) { raindropNS(); } else if (ie4up) { raindropIE(); } // End --> </SCRIPT>
按 <F12> 預覽就應該可以看到效果了,
開啟一文件,打開 HTML 視窗如下:
請用滑鼠選取複製下列 JavaScript,拷貝到上圖中第九列的地方
<SCRIPT language=JavaScript1.2 type=text/javascript> <!-- var uti = true; var speed = 6; var fireSize = 180; var fireNo = 10; var wa = 4; var space = 15; var img = "Firework.gif"; var _dom=(document.all?3:(document.getElementById?1:(document.layers?2:0))); var fireLay=""; for (i=0; i<fireNo*wa; i++) { if (_dom == 1 || _dom == 3) { fireLay += '<DIV id="fire' + i + '" style="position:absolute; width:1px; height:1px left:-100px; top=-100px;"><IMG src="' + img + '"></DIV>'; } if (_dom == 2) { fireLay += '<LAYER name="fire'+ i +'" left="-100" top="-100"><IMG src="' + img + '"></LAYER>\n'; } } document.writeln(fireLay); function getWindowSize() { if(_dom == 1 || _dom == 2) { win_width = self.innerWidth; win_height = self.innerHeight; } if (_dom == 3) { win_width = document.body.clientWidth; win_height = document.body.clientHeight; } } function showLayer(layerName){ if (_dom == 1) document.getElementById(layerName).style.visibility = "visible"; if (_dom == 2) document.layers[layerName].visibility = "show"; if (_dom == 3) document.all(layerName).style.visibility = "visible"; } function hideLayer(layerName){ if (_dom == 1) document.getElementById(layerName).style.visibility = "hidden"; if (_dom == 2) document.layers[layerName].visibility = "hide"; if (_dom == 3) document.all(layerName).style.visibility = "hidden"; } function moveLayerTo(layerName, x, y){ if (_dom == 1) { document.getElementById(layerName).style.left = x + scrollX; document.getElementById(layerName).style.top = y + scrollY; } if (_dom == 2) { document.layers[layerName].left = x + pageXOffset; document.layers[layerName].top = y + pageYOffset; } if (_dom == 3) { document.all(layerName).style.pixelLeft = x + document.body.scrollLeft document.all(layerName).style.pixelTop = y + document.body.scrollTop; } } function utiage(layerName,sx,sy,ex,ey,dl,sp) { var l, xp, yp, tim, z, dl2; l=Math.abs(Math.sqrt(Math.pow((ex-sx),2)+Math.pow((ey-sy),2))); z = Math.floor(l / dl); dl2 = l / z; if (Math.floor(l) != 0) { xp = dl2/l*(ex-sx)+sx; if (ex-sx == 0) { if (sy<ey) yp = sy+dl2; else yp = sy-dl2; } else yp = (sy-ey)/(sx-ex)*xp+sy-(sy-ey)/(sx-ex)*sx; moveLayerTo(layerName,xp,yp); tim = setTimeout("utiage('"+layerName+"',"+xp+","+yp+","+ex+","+ey+","+dl+","+sp+")",sp); } else { hideLayer(layerName); setTimeout("hanabi()",100); } } function hanabi() { for (i=0; i<fireNo*wa; i++) { zure1 = Math.floor(i/fireNo)%2 == 0 ? 0:(Math.PI / fireNo); zure2 = Math.floor(i/fireNo) * space; ran = (radius1>(fireSize*0.8)) ? Math.floor(Math.random()*20-10) : 0; radius2 = (radius1 - zure2) > 0 ? radius1 - zure2 : 0; if ((radius1 - zure2) > fireSize) { hideLayer("fire" + i); } else { showLayer("fire" + i); } moveLayerTo("fire" + i, centerX + Math.cos(i * (Math.PI * 2 / fireNo) + zure1) * (radius2) + ran, centerY + Math.sin(i * (Math.PI * 2 / fireNo) + zure1) * (radius2) + ran); } radius1 += speed; if (radius1 > (fireSize + space * wa)) { setHanabiPos(); } else { setTimeout("hanabi()",10);} } function setHanabiPos() { rev = 0; radius1 = 0; getWindowSize(); centerX = Math.floor(Math.random() * (win_width - (fireSize + space * wa) * 2) + (fireSize + space * wa)); centerY = Math.floor(Math.random() * (win_height - (fireSize + space * wa) * 2) + (fireSize + space * wa)); if (uti) { showLayer("fire0"); utiage("fire0",centerX,(win_height + 50),centerX,centerY,speed,10); } else setTimeout("hanabi()",1000); } if (_dom) setHanabiPos(); // --> </SCRIPT>
按 <F12> 預覽就應該可以看到效果了,
背景音效的製作如下:
下載音效檔案 AmericanPie.asf
開啟一文件,打開 HTML 視窗如下:
請在上圖中第五列與第六列之間鍵入下列 JavaScript
<SCRIPT type="text/javascript" src="move.js"></SCRIPT>
請下載 move.js 存檔
並修改第八列 <body> 敘述為
<BODY bgProperties=fixed background=xxxx.jpg onload={pagestart();} onunload="if(brOK) {stopme('chip1'); stopme('chip2'); stopme('chip3'); stopme('chip4');stopme('chip5');stopme('chip6');}"> <DIV id=chip1 style="WIDTH: 0px; POSITION: absolute; HEIGHT: 0px"> <IMG style="FILTER: flipH()" src="Butterfly2.gif" border=0></DIV> <DIV id=chip2 style="WIDTH: 0px; POSITION: absolute; HEIGHT: 0px"> <IMG src="Butterfly1.gif" border=0></DIV> <DIV id=chip3 style="WIDTH: 0px; POSITION: absolute; HEIGHT: 0px"> <IMG style="FILTER: flipH()" src="butterfly1.gif" border=0></DIV> <DIV id=chip4 style="WIDTH: 0px; POSITION: absolute; HEIGHT: 0px"> <IMG src="butterfly2.gif" border=0></DIV> <DIV id=chip5 style="WIDTH: 0px; POSITION: absolute; HEIGHT: 0px"> <IMG style="FILTER: flipH()" src="butterfly2.gif" border=0></DIV> <DIV id=chip6 style="WIDTH: 0px; POSITION: absolute; HEIGHT: 0px"> <IMG src="butterfly1.gif" border=0></DIV>
請下載圖片檔案 Butterfly1.gif, Butterfly2.gif
按 <F12> 預覽就應該可以看到效果了,如下圖: