原生js实现雪花飘落效果
雪花飘落的效果实现步骤:1.使用setInterval定时器每800毫秒创建一个雪花;2.把每一个雪花作为参数传进动态下落的方法中即可。
<style>
*{padding: 0;margin: 0;}
body{
background:#000;
width: 100%;
height: 100%;
overflow:hidden;
}
</style>
<div id="flame"></div>
js实现代码:
<script>
function Obj(){} //创建一个对象
/*为这个对象添加一个具有一个参数的原型方法*/
Obj.prototype.draw=function(o){
var speed=0; //雪花每次下落的数值(10px)
var startPosLeft=Math.ceil(Math.random()*document.documentElement.clientWidth);//设置雪花随机的开始x值的大小
o.style.opacity=(Math.ceil(Math.random()*3) 7)/10; //设置透明度
o.style.left=startPosLeft 'px';
o.style.color="#fff";
o.style.fontSize=12 Math.ceil(Math.random()*14) 'px';
setInterval(function(){
//雪花下落的top值小鱼屏幕的可视区域高时执行下列
if(speed<document.documentElement.clientHeight){
o.style.top=speed 'px';
o.style.left=startPosLeft Math.ceil(Math.random()*8) 'px';
speed =10;
}
else{
o.style.display='none';
}
},400);
}
var flame=document.getElementById('flame');
/*使用setInterval定时器每800毫秒创建一个雪花*/
setInterval(function(){
var odiv=document.createElement('div'); //创建div
odiv.innerHTML="✽"; //div的内容
odiv.style.position='absolute'; //div的绝对定位
flame.appendChild(odiv); //把创建好的div放进flame中
var obj=new Obj(); //创建函数
obj.draw(odiv); //执行obj的draw方法
},800);
</script>
效果图如下:
这样雪花飘落的效果就做好了。有什么不足的地方请指正!
美酒没故事°: 看看css开放库https://uiverse.io/elements 案例太多了
韪零零: 蟹蟹,ღ( ´・ᴗ・` )比心
湖边的石头: 额, 是不是对好看有些误解
Orion475: 这个代码的颜色和背景好无语,看不清
奥特曼冲击波: 怎么第一个跳转到黄色网站了