javascript实现下雪效果【实例代码】
原理:
1、js动态创建DIV,指定CLASS类设置不同的背景图样式显示不同的雪花效果。
2、js获取创建的DIV并改变其top属性值,当下落的高度大于屏幕高后删除该移动div
3、好像不够完善勿喷
HTML代码:
<!DOCTYPEhtml> <htmllang="en"> <head> <metacharset="UTF-8"> <title>雪花飞舞</title> <linkrel="stylesheet"href="css/index.css"> <scriptsrc="js/move.js"></script> </head> <body> <divclass="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:0auto; } .snow_parentdiv.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:00; 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代码:
/* creatByjiucheng2016-4-24 */ window.onload=function(){ init(); } //创建DIV functioncreatDiv(){ //创建DIV并追加到父元素 varsnowDiv=document.createElement("div"); document.getElementById("js_sonw").appendChild(snowDiv); //让创建DIV的class为随机,显示不同的雪花 varwhatName=["snow_oneparent","snow_twoparent","snow_threeparent","snow_fourparent"]; varindex=Math.floor(Math.random()*whatName.length); snowDiv.className=whatName[index]; //获取该DIV的left属性值(随机的)并赋值给创建的DIV varwhatLeft=getLeft()+'px'; snowDiv.style.left=whatLeft; returnsnowDiv; } //获取随机left属性值 functiongetLeft(){ //获取该DIV的最大left属性值即父元素的宽度 vareleParent=document.getElementById("js_sonw"); //获取父元素的所有style样式 varstyle=window.getComputedStyle(eleParent); //CSS中的left是负数这里得减去下 varmaxWidth=parseInt(style.width)+70; //让创建的DIV的left为随机值 varrandomLeft=Math.floor(Math.random()*maxWidth); returnrandomLeft; } //让其向下移动 functionmoveDown(){ //获取移动对象 varmoveElem=creatDiv(); //获取移动对象的所有style属性值 vareleStyle=window.getComputedStyle(moveElem); //获取它的top属性值 vareleTop=parseInt(eleStyle.top); //设置定时器动态改变移动对象的top属性值 vart=setInterval(function(){ eleTop++; //把新的top值付给移动对象 moveElem.style.top=eleTop+"px"; //当下落到屏幕的高度后停止定时器并把该移动对象从父元素删除 if(eleTop>=window.innerHeight){ clearInterval(t); document.getElementById("js_sonw").removeChild(moveElem); } },10);//下落速度没10毫秒下落1px } functioninit(){ //动态获取并设置body的高度 document.body.style.height=window.innerHeight+"px"; //每500毫秒创建一个移动对象并执行移动函数 vart=setInterval(function(){ moveDown(); },100); }
以上这篇javascript实现下雪效果【实例代码】就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。