这篇文章主要介绍了JS实现的雪花飘落特效,结合实例形式详细分析了JavaScript结合时间函数动态操作页面元素的相关实现,需要的朋友可以参考下

本文实例讲述了JS实现的雪花飘落特效。分享给大家供大家参考,具体如下:

首先我们要创建一个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"> </canvas>
</body>
</html>

在上面的代码中,我们创建了一个canvas画布,并且设置他为浮动,背景色无(如果这里不设置浮动,那么等下获取整个屏幕的大小赋给他的时候是会产生边距的)

接下来的JavaScript代码

<script>
 //获取屏幕最大长宽
  var maxWidth = document.documentElement.clientWidth;
  var maxHeight = document.documentElement.clientHeight;
  //获取canvas画布
  var canvasObj = document.getElementById('myCanvas');
  //将屏幕的长宽赋给画布
  canvasObj.width = maxWidth;
  canvasObj.height = maxHeight;
  //创建雪花图形(白色的圆形)
  var cxt = canvasObj.getContext('2d');
  //设置雪花的个数
  var snowCount = 1000;
  var objArray = [];
  for(var index = 0;index < snowCount; index++){
   objArray.push({
     //随机x轴位置
     x : Math.random()*maxWidth,
     //随机y轴位置
     y : Math.random()*maxHeight,
     //随机半径大小
     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++) {
     //把每个圆都画出来
      objArray[index].drow();
    }
    downLoadSnow()
    //调用雪花移动效果
  }
  function downLoadSnow() {
   for(var index = 0;index<objArray.length;index++){
     if(objArray[index].x > maxWidth) {
       objArray[index].x = 0;
        //当移动的位置大于最大屏幕宽度时返回到0
       } else {
        objArray[index].x +=5;
         //否则一直加下去
       }
       if(objArray[index].y > maxHeight) {
         objArray[index].y = 0;
         //当移动的位置大于最大屏幕高度时返回0
       } else {
         objArray[index].y +=5;
         //否则一直加下去
       }
     }
  }
 setInterval("drawSnow()",30);
 //调用计时器
</script>

到此雪花落下的结果就已经实现了

这里使用在线HTML/CSS/JavaScript前端代码调试运行工具:http://tools.lovean.com/code/WebCodeRun测试上述代码,可得如下运行效果:

更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《JavaScript运动效果与汇总》、《JavaScript切换特效与总结》、《JavaScript查找算法总结》、《JavaScript动画特效与汇总》、《JavaScript错误与调试总结》、《JavaScript数据结构与算法总结》、《JavaScript遍历算法与总结》及《JavaScript数算用法总结》

希望本文所述对大家JavaScript程序设计有所帮助。

最新资讯
罗永浩挑起第一次直播大战?

罗永浩挑起第一次直播

数据显示,从4月1日20时开始,罗永浩的直播持续3小时,支付
支付宝牵手全球最大公募基金推出智能投顾 800元起投

支付宝牵手全球最大公

蚂蚁金服和全球最大公募基金公司Vanguard集团独家合作
日(J)本(P)一大学举行云毕业典礼:机器人替身领毕业证(图)

日(J)本(P)一大学举行云毕业

日(J)本(P)BBT大学日前在东京举行了毕业典礼,并启用一款新研
百度发行10亿美元新债 穆迪授予A3评级

百度发行10亿美元新债

北京时间4月2日,百度向美国证券交易委员会递交登记文件
小米营收破2000亿,雷军却要重新创业,打的什么牌?

小米营收破2000亿,雷军

“放下过去的包袱,重新创业。”3月27日,雷军在微博中写
宝宝树,一场狂奔后的失去

宝宝树,一场狂奔后的失

如何挽救宝宝树的困境,可能目前也无人能给出清晰的解答
最新文章
Vue实现图片与文字混输效果

Vue实现图片与文字混

用多了 JQuery ,习惯了使用JQuery的API操作 DOM ,几乎忘
Vue实现点击当前元素以外的地方隐藏当前元素(实现思路)

Vue实现点击当前元素

这篇文章主要介绍了Vue实现点击当前元素以外的地方隐
Vue实现验证码功能

Vue实现验证码功能

这篇文章主要为大家详细介绍了Vue实现验证码功能,文中
JS实现的雪花飘落特效示例

JS实现的雪花飘落特效

这篇文章主要介绍了JS实现的雪花飘落特效,结合实例形
微信小程序实现图片压缩

微信小程序实现图片压

这篇文章主要为大家详细介绍了微信小程序实现图片压缩
JavaScript实现京东放大镜效果

JavaScript实现京东放

这篇文章主要为大家详细介绍了JavaScript实现京东放大