最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JS實(shí)現(xiàn)的雪花飄落特效示例

 更新時(shí)間:2019年12月03日 10:42:58   作者:陳柴Rarin  
這篇文章主要介紹了JS實(shí)現(xiàn)的雪花飄落特效,結(jié)合實(shí)例形式詳細(xì)分析了JavaScript結(jié)合時(shí)間函數(shù)動(dòng)態(tài)操作頁(yè)面元素的相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下

本文實(shí)例講述了JS實(shí)現(xiàn)的雪花飄落特效。分享給大家供大家參考,具體如下:

首先我們要?jiǎng)?chuàng)建一個(gè)HTML文件,將其命名為index.html

<!DOCTYPE html>
<html>
<head>
 <title> Canvas - 雪花特效 </title>
 <meta charset="utf-8">
 <style>
 *{
  margin:0px;
  padding:0px;
 }
 .myCanvas{
  float:left;
  background:rgba(0,0,0,0);
 }
 </style>
</head>
<body>
 <canvas id="myCanvas" class="myCanvas"> </canvas>
</body>
</html>

在上面的代碼中,我們創(chuàng)建了一個(gè)canvas畫布,并且設(shè)置他為浮動(dòng),背景色無(wú)(如果這里不設(shè)置浮動(dòng),那么等下獲取整個(gè)屏幕的大小賦給他的時(shí)候是會(huì)產(chǎn)生邊距的)

接下來(lái)的JavaScript代碼

<script>
 //獲取屏幕最大長(zhǎng)寬
  var maxWidth = document.documentElement.clientWidth;
  var maxHeight = document.documentElement.clientHeight;
  //獲取canvas畫布
  var canvasObj = document.getElementById('myCanvas');
  //將屏幕的長(zhǎng)寬賦給畫布
  canvasObj.width = maxWidth;
  canvasObj.height = maxHeight;
  //創(chuàng)建雪花圖形(白色的圓形)
  var cxt = canvasObj.getContext('2d');
  //設(shè)置雪花的個(gè)數(shù)
  var snowCount = 1000;
  var objArray = [];
  for(var index = 0;index < snowCount; index++){
   objArray.push({
     //隨機(jī)x軸位置
     x : Math.random()*maxWidth,
     //隨機(jī)y軸位置
     y : Math.random()*maxHeight,
     //隨機(jī)半徑大小
     r : Math.random()*4+1,
     //畫圓
     drow : function() {
     cxt.beginPath();
       //填充色
       cxt.fillstyle = "#fff";
       //填充
       cxt.fill();
       //圓的屬性
       cxt.arc(this.x,this.y,this.r,0,2*Math.PI);
       //輸出圓
       cxt.stroke();
     }
  });
 }
  function drawSnow() {
   cxt.clearRect(0,0,maxWidth,maxHeight)
    //清除0x軸,0y軸,最大屏幕x軸,最大屏幕y軸的圓形
    for(var index = 0; index<objArray.length; index++) {
     //把每個(gè)圓都畫出來(lái)
      objArray[index].drow();
    }
    downLoadSnow()
    //調(diào)用雪花移動(dòng)效果
  }
  function downLoadSnow() {
   for(var index = 0;index<objArray.length;index++){
     if(objArray[index].x > maxWidth) {
       objArray[index].x = 0;
        //當(dāng)移動(dòng)的位置大于最大屏幕寬度時(shí)返回到0
       } else {
        objArray[index].x +=5;
         //否則一直加下去
       }
       if(objArray[index].y > maxHeight) {
         objArray[index].y = 0;
         //當(dāng)移動(dòng)的位置大于最大屏幕高度時(shí)返回0
       } else {
         objArray[index].y +=5;
         //否則一直加下去
       }
     }
  }
 setInterval("drawSnow()",30);
 //調(diào)用計(jì)時(shí)器
</script>

到此雪花落下的結(jié)果就已經(jīng)實(shí)現(xiàn)了

這里使用在線HTML/CSS/JavaScript前端代碼調(diào)試運(yùn)行工具http://tools.jb51.net/code/WebCodeRun測(cè)試上述代碼,可得如下運(yùn)行效果:

更多關(guān)于JavaScript相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《JavaScript運(yùn)動(dòng)效果與技巧匯總》、《JavaScript切換特效與技巧總結(jié)》、《JavaScript查找算法技巧總結(jié)》、《JavaScript動(dòng)畫特效與技巧匯總》、《JavaScript錯(cuò)誤與調(diào)試技巧總結(jié)》、《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》、《JavaScript遍歷算法與技巧總結(jié)》及《JavaScript數(shù)學(xué)運(yùn)算用法總結(jié)

希望本文所述對(duì)大家JavaScript程序設(shè)計(jì)有所幫助。

相關(guān)文章

最新評(píng)論

临潭县| 孝义市| 仲巴县| 乐陵市| 金坛市| 盐源县| 通许县| 南投县| 仲巴县| 沙田区| 肥城市| 金堂县| 内丘县| 凤山市| 克拉玛依市| 临澧县| 临朐县| 华容县| 平山县| 柳河县| 洪湖市| 周至县| 萨嘎县| 屯门区| 封丘县| 临安市| 彩票| 巴中市| 合江县| 宜丰县| 安化县| 辽阳市| 墨竹工卡县| 承德市| 加查县| 宿松县| 横山县| 平利县| 鄂托克前旗| 璧山县| 唐海县|