⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rain.htm

📁 JavaScript编程实例5
💻 HTM
字号:
<html>
<head>
  <title>
    雨点效果
  </title>
</head>

<body bgcolor="000000">
  
  <SCRIPT LANGUAGE="JavaScript"> 
  <!-- Begin 
    var no = 25; //雨点数
    var speed = 1; //雨点下落速度
    var ns4up = (document.layers) ? 1 : 0; //判断浏览器是否是Netscape
    var ie4up = (document.all) ? 1 : 0; //判断浏览器是否是IE
    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; //用来计算r[i]的一个基数
    for (i = 0; i < no; ++ i) 
    { 
      initRain(); 
      //Netscape浏览器下的代码,请参看下面的IE情况下的注释
      if(ns4up) 
      { 
        if(i == 0) 
        { 
           document.write("<layer name=\"dot"+ i +"\" left=\"1\" "); 
           document.write("top=\"1\" visibility=\"show\"><font color=\"3333ff\">"); 
           document.write(",</font></layer>"); 
        } 
        else 
        { 
          document.write("<layer name=\"dot"+ i +"\" left=\"1\" "); 
          document.write("top=\"1\" visibility=\"show\"><font color=\"3333ff\">"); 
          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=\"3333ff\">"); 
          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=\"3333ff\">"); 
          //设置另外两种雨点
          if(i%3 == 2)
            document.write(".</font></div>"); 
          else if(i%3 == 1)
            document.write("。</font></div>");  
          else 
            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];//雨点下一步位置的纵坐标
    } 

    //Netscape下的下雨效果
    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);
    } 
 
    //IE下的下雨效果
    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();//调用Netscape下的下雨效果
    } 
    else if(ie4up) 
    {
      raindropIE();//调用IE下的下雨效果
    } 

  // End --> 
  </script> 
      
</body>
</html>    

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -