[經驗分享]JavaScript 特效 :: 雪花效果

MODs Released by Other phpbb Sites
非官方認證通過之 MOD ,或許有安全性之疑慮,所有問題由原發表者回覆!

版主: 版主管理群

主題已鎖定
頭像
心靈捕手
默默耕耘的老師
默默耕耘的老師
文章: 8535
註冊時間: 2004-04-30 01:54
來自: Taiwan

[經驗分享]JavaScript 特效 :: 雪花效果

文章 心靈捕手 »

[安裝說明] JavaScript 特效 :: 雪花效果


#
#-----[ OPEN ]-----
#
templates/YOUR_THEME/overall_header.tpl

#
#-----[ FIND ]-----
# ps. body 後面也許還有其他代碼

代碼: 選擇全部

<body>
#
#-----[ AFTER, ADD ]-----
#

代碼: 選擇全部

<script language="JavaScript">
var no = 20; // snow number 
var speed = 1; // smaller number moves the snow faster 
var snowflake = "snow.gif"; 

var ns4up = (document.layers) ? 1 : 0; // browser sniffer 
var ie4up = (document.all) ? 1 : 0; 
var dx, xp, yp; // coordinate and position variables 
var am, stx, sty; // amplitude and step variables 
var i, doc_width = 1024, doc_height = 764; 
if (ns4up) { 
doc_width = self.innerWidth; 
doc_height = self.innerHeight; 
} else if (ie4up) { 
doc_width = document.body.clientWidth; 
doc_height = document.body.clientHeight; 
} 
dx = new Array(); 
xp = new Array(); 
yp = new Array(); 
am = new Array(); 
stx = new Array(); 
sty = new Array(); 
for (i = 0; i < no; ++ i) { 
dx[i] = 0; // set coordinate variables 
xp[i] = Math.random()*(doc_width-50); // set position variables 
yp[i] = Math.random()*doc_height; 
am[i] = Math.random()*20; // set amplitude variables 
stx[i] = 0.02 + Math.random()/10; // set step variables 
sty[i] = 0.7 + Math.random(); // set step variables 
if (ns4up) { // set layers 
if (i == 0) { 
document.write("<layer name=\"dot"+ i +"\" left=\"15\" "); 
document.write("top=\"15\" visibility=\"show\"><img src=\""); 
document.write(snowflake + "\" border=\"0\"></layer>"); 
} else { 
document.write("<layer name=\"dot"+ i +"\" left=\"15\" "); 
document.write("top=\"15\" visibility=\"show\"><img src=\""); 
document.write(snowflake + "\" border=\"0\"></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;\"><img src=\""); 
document.write(snowflake + "\" border=\"0\"></div>"); 
} else { 
document.write("<div id=\\"dot"+ i +"\" style=\"POSITION: "); 
document.write("absolute; Z-INDEX: "+ i +"; VISIBILITY: "); 
document.write("visible; TOP: 15px; LEFT: 15px;\"><img src=\""); 
document.write(snowflake + "\" border=\"0\"></div>"); 
} 
} 
} 
function snowNS() { // Netscape main animation function 
for (i = 0; i < no; ++ i) { // iterate for every dot 
yp[i] += sty[i]; 
if (yp[i] > doc_height-50) { 
xp[i] = Math.random()*(doc_width-am[i]-30); 
yp[i] = 0; 
stx[i] = 0.02 + Math.random()/10; 
sty[i] = 0.7 + Math.random(); 
doc_width = self.innerWidth; 
doc_height = self.innerHeight; 
} 
dx[i] += stx[i]; 
document.layers["dot"+i].top = yp[i]; 
document.layers["dot"+i].left = xp[i] + am[i]*Math.sin(dx[i]); 
} 
setTimeout("snowNS()", speed); 
} 
function snowIE() { // IE main animation function 
for (i = 0; i < no; ++ i) { // iterate for every dot 
yp[i] += sty[i]; 
if (yp[i] > doc_height-50) { 
xp[i] = Math.random()*(doc_width-am[i]-30); 
yp[i] = 0; 
stx[i] = 0.02 + Math.random()/10; 
sty[i] = 0.7 + Math.random(); 
doc_width = document.body.clientWidth; 
doc_height = document.body.clientHeight; 
} 
dx[i] += stx[i]; 
document.all["dot"+i].style.pixelTop = yp[i]; 
document.all["dot"+i].style.pixelLeft = xp[i] + am[i]*Math.sin(dx[i]); 
} 
setTimeout("snowIE()", speed); 
} 
if (ns4up) { 
snowNS(); 
} else if (ie4up) { 
snowIE(); 
} 
</script> 
#
#-----[ Copy ]-----
#

代碼: 選擇全部

snow.gif TO /phpbbRootDir/
#
#-----[ SAVE & CLOSE ]-----
#
#EoM
Source: http://dob.tnc.edu.tw/themes/old/showPage.php?s=116&t=6
( 含 snow.gif 下載, 以及 DEMO)


[補充說明]

1. 若是更改圖片存放路徑, 則 JavaScript 語法中, 也必須更改相對路徑才行;
預設, 圖片是在討論區根目錄底下.
2. 若是覺得預設圖片太陽春, 則可自行製作其他圖片取代.
3. 經過測試, 發現會拖慢網頁存取的速度.
施比受有福,祝福您好運! ^_^
歡迎光臨★★心靈捕手★★ :: 討論區
https://wang5555.dnsfor.me/phpBB3/
主題已鎖定

回到「非官方認證外掛」