亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 語言 > JavaScript > 正文

使用javascript實現雪花飄落的效果

2024-05-06 16:14:23
字體:
來源:轉載
供稿:網友
本文主要介紹了使用javascript實現雪花飄落的特效,雖然網上有很多,不過都是比較陳舊了,兼容性不是太好,于是動手寫一個,把思路和實現代碼都分享給大家。
 

看了javascript網頁特效實例大全中的圖片飄下的效果實例,覺得值得動手學習下。

就把圖片改成雪花圖,完成一個雪花飄下的效果。

并且,其中有些內容比較陳舊了,那么就學者改掉吧。

包括:

1.對left和top的操作僅支持IE瀏覽器,這咋行,必須得支持chrome。
2.控制圖片下落的過程還要去檢索element,不好吧,那就改成數組維持,直接操作數組中維持的對象,啟不更快。
3.向文檔中添加元素直接改成通過JS代碼創建元素對象的方式。

實現思路:

1.初始化生成10個div,全都采用絕對定位,每個div中放一個雪花圖片,設置好寬高,并保存在數組中,便于后面下雪的函數直接操作。
2.初始化每個div的橫坐標和縱坐標,總要給雪花一個下落的起始位置吧。
3.初始化為每個雪花都設一個縱向的下落步長,一個橫向的擺動步長,這樣每個雪花都會以不同的速度下落和擺動。
4.做一個下雪的函數,每10秒調一下該函數,每調一次該函數,就是控制每個雪花在縱向下落一個自身的步長,橫向的擺動通過正弦函數算出一個正弦值后乘以幅度,這樣雪花下落就是按照正弦波形的方式進行。

圖片可以網上隨便找。

以下代碼兼容IE8+,Chrome。

 

復制代碼代碼如下:

<BODY>
  <SCRIPT LANGUAGE="JavaScript">
    //圖片的過程中,橫坐標的軌跡是以一點為中心的正弦曲線
    //利用了setTimeout函數完成了動畫的功能
    //圖片
    var snowsrc="雪花.png"
    //雪花個數
    var no = 10; 
    //聲明變量,xp表示橫坐標,yp表示縱坐標>
    var dx, xp, yp;
    //聲明變量,am表示左右擺動的幅度,stx表示橫坐標的偏移步長,sty表示縱坐標的步長>
    var am, stx, sty;  
    {
      //獲取當前窗口的寬度
      clientWidth = document.body.clientWidth;
      //獲取當前窗口的高度
      clientHeight = document.body.clientHeight;
    }
    var dx = new Array();
    var xp = new Array();
    var yp = new Array();
    var am = new Array();
    var stx = new Array();
    var sty = new Array();
    var snowFlakes = new Array();
    for (i = 0; i < no; ++ i) {  
      dx[i] = 0;                        
      //第i個圖片的橫坐標初始值
      xp[i] = Math.random()*(clientWidth-50);  
      yp[i] = Math.random()*clientHeight;//第i個圖片的縱坐標初始值
      am[i] = Math.random()*20;         //第i個圖片的左右擺動的幅度
      stx[i] = 0.02 + Math.random()/10; //第i個圖片x方向的步長
      sty[i] = 0.7 + Math.random();     //第i個圖片y方向的步長
      //生成一個容納雪花圖片的div,并設置其絕對坐標
      var snowFlakeDiv = document.createElement('div');
      snowFlakeDiv.setAttribute('id', 'dot'+ i);
      snowFlakeDiv.style.position = 'absolute';
      snowFlakeDiv.style.top = 15;
      snowFlakeDiv.style.left = 15;
      //生成一個雪花圖片對象,設置寬高,并加入div
      var snowFlakeImg = document.createElement('img');
      snowFlakeImg.setAttribute('src', snowsrc);
      snowFlakeImg.style.width = 30;
      snowFlakeImg.style.height = 30;
      //將雪花div加入到document中,并通過數組保存
      snowFlakeDiv.appendChild(snowFlakeImg);
      document.body.appendChild(snowFlakeDiv);
      snowFlakes[i] = snowFlakeDiv;
    }
    function snow() {  
      for (i = 0; i < no; ++ i) {  
        //第i個圖片的縱坐標加上步長
        yp[i] += sty[i];
        //如果新坐標超過了屏幕下沿,重置該圖片的信息,包括橫坐標、縱坐標以及x方向的步長和y方向的步長
        if (yp[i] > clientHeight-50) {
          //重新賦值圖片的橫坐標
          xp[i] = Math.random()*(clientWidth-am[i]-30);
          //重新賦值圖片的縱坐標
          yp[i] = 0;
        }
        dx[i] += stx[i];//dx變量加上一個步長
        //直接操作數組中對應的雪花div
        var snowFlakeDiv = snowFlakes[i];
        //更新圖片的縱坐標
        snowFlakeDiv.style.top = yp[i];
        //更新圖片的橫坐標
        snowFlakeDiv.style.left = xp[i] + am[i]*Math.sin(dx[i]);
      }
      //設定動畫刷新的時間周期
      setTimeout("snow()", 10);
    }
    //調用snowIE()函數 
    snow();
  </script>
</BODY>

 

以上就是全部代碼了,效果還是挺棒的,具體的解釋請看注釋,這里就不多廢話了,希望對大家能有所幫助。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美夫妻性视频| 亚洲欧洲自拍偷拍| 欧美成人剧情片在线观看| 国产精品va在线播放| 久久视频免费观看| 亚洲热线99精品视频| 欧美成人精品一区二区三区| 国产mv免费观看入口亚洲| 69久久夜色精品国产69乱青草| 中文字幕免费国产精品| 国产成人精品久久二区二区91| 日韩成人在线免费观看| 亚洲国产精品久久久久秋霞蜜臀| 亚洲精品一二区| 亚洲性日韩精品一区二区| 欧美黑人视频一区| 国产精品精品一区二区三区午夜版| 国产亚洲成精品久久| 精品久久久久久国产| 国模视频一区二区三区| 91免费看片网站| 久久综合国产精品台湾中文娱乐网| 欧美一级电影免费在线观看| 亚洲高清av在线| 亚洲精品在线91| 久久精品国产久精国产思思| 成人免费视频在线观看超级碰| 欧美中文字幕视频在线观看| 日韩成人高清在线| 亚洲a级在线播放观看| 日韩美女免费观看| 午夜精品久久久久久久久久久久| 久久五月天色综合| 成人精品视频久久久久| 亚洲欧美日韩国产精品| 亚洲综合第一页| 亚洲欧洲国产一区| 日韩成人在线视频| 亚洲精品电影网| 国产精品99蜜臀久久不卡二区| 久久精品国产电影| 亚洲欧美日韩在线一区| 精品久久久久久久久中文字幕| 欧美乱大交xxxxx| 久久av在线看| 亚洲天堂av女优| 97在线视频一区| 91免费在线视频| 久久久久久国产三级电影| 国产视频自拍一区| 成人激情免费在线| 久久久久久久久亚洲| 日本成人精品在线| 亚洲人成电影网站色…| 久久天天躁狠狠躁老女人| 97精品久久久| 亚洲视频在线免费看| 国产精品观看在线亚洲人成网| 91在线高清免费观看| 夜夜躁日日躁狠狠久久88av| 久久久噜噜噜久久| 97碰碰碰免费色视频| 久久精品99国产精品酒店日本| 亚洲精品资源美女情侣酒店| 亚洲精品二三区| 热久久美女精品天天吊色| 精品国产31久久久久久| 青青a在线精品免费观看| 成人性生交大片免费看小说| 日产精品久久久一区二区福利| 欧美成人合集magnet| 中文字幕av一区中文字幕天堂| 最近更新的2019中文字幕| 国产成人aa精品一区在线播放| 亚洲japanese制服美女| 91久久综合亚洲鲁鲁五月天| 欧美wwwxxxx| 91久久综合亚洲鲁鲁五月天| 亚洲色图美腿丝袜| 国产热re99久久6国产精品| 国产成人精品综合久久久| 91在线视频九色| 日韩免费av片在线观看| 日韩欧美在线国产| 欧美激情精品久久久久久大尺度| 成人免费网站在线观看| 精品久久久久久久中文字幕| 久久成人av网站| 欧美激情第三页| 成人a在线视频| 亚洲午夜女主播在线直播| 日韩在线观看av| 亚洲日本aⅴ片在线观看香蕉| 亚洲无线码在线一区观看| 久久精品亚洲精品| 国产一区二区三区久久精品| 精品免费在线视频| 国产日韩中文字幕在线| 91福利视频在线观看| 亚洲精品国产拍免费91在线| 国产综合色香蕉精品| 日韩综合视频在线观看| 亚洲免费电影在线观看| 国产精品com| 精品高清美女精品国产区| 91精品国产高清久久久久久91| 欧美成人精品一区二区三区| 亚洲第一福利在线观看| 国产成人精品久久亚洲高清不卡| 国产亚洲一区二区在线| 欧美最猛黑人xxxx黑人猛叫黄| xxxx欧美18另类的高清| 一区二区三区四区视频| 精品久久香蕉国产线看观看gif| 亚洲高清色综合| 色综合导航网站| 亚洲精品视频播放| 成人黄色片在线| 亚洲欧美综合v| 亚洲色图激情小说| 国产精品99久久久久久久久| 久久偷看各类女兵18女厕嘘嘘| 久久久久国色av免费观看性色| zzijzzij亚洲日本成熟少妇| 久久国产精品久久久久久久久久| 国产日韩欧美在线视频观看| 亚洲韩国日本中文字幕| 国产精品久久久久久久7电影| 夜夜嗨av一区二区三区四区| 2019中文字幕在线观看| 日本一本a高清免费不卡| 成人免费大片黄在线播放| 国产精品一区二区三区久久| 国产69久久精品成人| 欧美三级欧美成人高清www| 欧美一区二区三区免费视| 欧美激情va永久在线播放| 欧美电影院免费观看| 国产精品久久9| 亚洲激情自拍图| 久久久av免费| 国产精品99久久久久久久久| 亚洲a级在线观看| 精品自拍视频在线观看| 91免费在线视频| 青青久久av北条麻妃海外网| 91久久久亚洲精品| 深夜福利国产精品| 亚洲国产婷婷香蕉久久久久久| 国产精品成熟老女人| 欧美激情久久久久| 亚洲一区二区三区xxx视频| 亚洲福利视频久久| 国产成人精品最新| 欧美午夜www高清视频| 国产xxx69麻豆国语对白| 九九综合九九综合| 欧美性猛交xxxx乱大交| 日韩在线精品一区| 国产一区二区三区直播精品电影| 久久精品99久久久久久久久| 亚洲午夜精品久久久久久久久久久久| 久久精品成人欧美大片古装| www.午夜精品|