javascript实现下雪效果(实例代码)
来源: 阅读:1132 次 日期:2016-07-06 10:20:59
温馨提示: 小编为您整理了“javascript实现下雪效果(实例代码)”,方便广大网友查阅!

下面小编就为大家带来一篇javascript实现下雪效果【实例代码】。小编觉得挺不错的,现在分享给大家,也给大家做个参考

原理 :

1、js动态创建DIV,指定CLASS类设置不同的背景图样式显示不同的雪花效果。

2、js获取创建的DIV并改变其top属性值,当下落的高度大于屏幕高后删除该移动div

3、好像不够完善勿喷

HTML代码:

<!DOCTYPE html>

<html lang="en">

<head>

  <meta charset="UTF-8">

  <title>雪花飞舞</title>

  <link rel="stylesheet" href="css/index.css">

  <script src="js/move.js"></script>

</head>

<body>

  <div class="snow_parent" id="js_sonw">

  </div>

</body>

</html>

CSS代码:

*{

  margin:0;

  padding:0;

  list-style: none;

  border: none;

}

body{

  width: 100%;

  height:600px;

  background:#000;

}

.snow_parent{

  position: relative;

  width: 100%;

  height:100%;

  overflow: hidden;

  margin: 0 auto;

}

.snow_parent div.parent{

  background-image: url(../img/snow.png);

  float: left;

  -webkit-transform: scale(.1);

  -moz-transform: scale(.1);

  -o-transform: scale(.1);

  -ms-transform: scale(.1);

  transform: scale(.1);

  position: absolute;

}

.snow_one{

  width: 180px;

  height: 180px;

  background-position:0 0;

  background-repeat: no-repeat;

  left:-70px;

  top: -95px;

}

.snow_two{

  width: 140px;

  height: 140px;

  background-position:-220px -18px;

  left:-30px;

  top: -75px;

}

.snow_three{

  width:150px;

  height: 150px;

  background-position:-400px -15px;

  left:-20px;

  top: -80px;

}

.snow_four{

  width: 160px;

  height: 160px;

  background-position:-10px -206px;  

}

.snow_four{

  left:-10px;

  top: -85px;

}

JS代码:

/*

  creatBy jiucheng 2016-4-24

*/

window.onload=function(){

  init();

}

// 创建DIV

function creatDiv(){

  // 创建DIV并追加到父元素

  var snowDiv=document.createElement("div");

  document.getElementById("js_sonw").appendChild(snowDiv);

  // 让创建DIV的class为随机,显示不同的雪花

  var whatName=["snow_one parent","snow_two parent","snow_three parent","snow_four parent"];

  var index=Math.floor(Math.random()*whatName.length);

  snowDiv.className=whatName[index];

  // 获取该DIV的left属性值(随机的)并赋值给创建的DIV

  var whatLeft=getLeft()+'px';

  snowDiv.style.left=whatLeft;

  return snowDiv;

}

// 获取随机left属性值

function getLeft(){

  // 获取该DIV的最大left属性值即父元素的宽度

  var eleParent=document.getElementById("js_sonw");

  // 获取父元素的所有style样式

  var style=window.getComputedStyle(eleParent);

  // CSS中的left是负数这里得减去下

  var maxWidth=parseInt(style.width)+70;

  // 让创建的DIV的left为随机值

  var randomLeft=Math.floor(Math.random()*maxWidth);

  return randomLeft;

}

// 让其向下移动

function moveDown(){

  // 获取移动对象

  var moveElem=creatDiv();

  // 获取移动对象的所有style属性值

  var eleStyle=window.getComputedStyle(moveElem);

  // 获取它的top属性值

  var eleTop=parseInt(eleStyle.top);

  // 设置定时器动态改变移动对象的top属性值

  var t=setInterval(function(){

    eleTop++;

    // 把新的top值付给移动对象

    moveElem.style.top=eleTop+"px";

    // 当下落到屏幕的高度后停止定时器并把该移动对象从父元素删除

    if(eleTop>=window.innerHeight){    

      clearInterval(t);

      document.getElementById("js_sonw").removeChild(moveElem);

    }    

  },10);//下落速度没10毫秒下落1px

}

function init(){

  // 动态获取并设置body的高度

  document.body.style.height=window.innerHeight+"px";

  // 每500毫秒创建一个移动对象并执行移动函数

  var t=setInterval(function(){

    moveDown();

  },100);

}

以上这篇javascript实现下雪效果【实例代码】就是小编分享给大家的全部内容了,希望能给大家一个参考

更多信息请查看网络编程
由于各方面情况的不断调整与变化, 提供的所有考试信息和咨询回复仅供参考,敬请考生以权威部门公布的正式信息和咨询为准!
关于我们 | 联系我们 | 人才招聘 | 网站声明 | 网站帮助 | 非正式的简要咨询 | 简要咨询须知 | 加入群交流 | 手机站点 | 投诉建议
工业和信息化部备案号:滇ICP备2023014141号-1 云南省教育厅备案号:云教ICP备0901021 滇公网安备53010202001879号 人力资源服务许可证:(云)人服证字(2023)第0102001523号
云南网警备案专用图标
联系电话:0871-65317125(9:00—18:00) 获取招聘考试信息及咨询关注公众号:hfpxwx
咨询QQ:526150442(9:00—18:00)版权所有:
云南网警报警专用图标
Baidu
map