新闻详情

如何制作下雨的效果代码

2928 2009/5/18

制作下雨效果实例代码

<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>标题页</title>
</head>
<body>
<script language="JavaScript">
var no = 50;
var speed = 1;
var ns4up = (document.layers) ? 1 : 0;          //针对netscape时,使用的对象-document.layers
var ie4up = (document.all) ? 1 : 0;             //针对ie时,使用的对象-document.all
var s, x, y, sn, cs;
var a, r, cx, cy;
var i, doc_width = 800, doc_height = 600;       //设置窗体的初始高度和宽度
if (ns4up) {                                    //netscape时,获取窗体的高度和宽度
    doc_width = self.innerWidth;
    doc_height = self.innerHeight;
}
else
if (ie4up) {                                    //ie时,获取窗体的高度和宽度
    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) {                                //netscape时,使用layer设置一些动态雨点
        if (i == 0) {
        document.write("<layer name=\"dot"+ i +"\" left=\"1\" ");
        document.write("top=\"1\" visibility=\"show\"><font color=\"blue\">");
        document.write(",</font></layer>");
        }
        else {
        document.write("<layer name=\"dot"+ i +"\" left=\"1\" ");
        document.write("top=\"1\" visibility=\"show\"><font color=\"blue\">");
        document.write(",</font></layer>");
           }
    }
    else
        if (ie4up) {                            //IE时,使用div设置一些动态雨点
            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=\"blue\">");
            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=\"blue\">");
            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() {                               //设置动态的x,y坐标
    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 setRain() {                             //重新生成x,y坐标
    r[i] += s;
    x[i] = r[i] * sn + cx[i];
    y[i] = r[i] * cs + cy[i];
}
function raindropNS() {                             //在netscape中的下雨效果
for (i = 0; i < no; ++ i) {
setRain();
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() {                              //在IE中的下雨效果
    for (i = 0; i < no; ++ i) {
    setRain();
    if ((x[i] <= 1) || (x[i] >= (doc_width - 20)) || (y[i] >= (doc_height - 20))) {
    makeRain();
    }
    document.all["dot"+i].style.pixelTop = y[i];        //循环改变雨点的x和y坐标
    document.all["dot"+i].style.pixelLeft = x[i];
    }
    setTimeout("raindropIE()", speed);                //实现定时器,实现不断下雨的效果
}
if (ns4up) {
    raindropNS();
}
else
if (ie4up) {
    raindropIE();
}
</script>
</body>
</html>

相关资讯

18973218026
返回顶部