100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > 下雪html特效代码 JavaScript 实现下雪特效的示例代码

下雪html特效代码 JavaScript 实现下雪特效的示例代码

时间:2023-04-13 00:52:48

相关推荐

下雪html特效代码 JavaScript 实现下雪特效的示例代码

直接上代码

下雪效果实现

body,html{

overflow: hidden;

}

var snowflakes = {

arr:[],// 数组盛放元素

snowflake : [//雪花类型

'❉',

'❈',

'*',

'✲',

'❀',

'❃'

],

snowflakeColor : [ //颜色库

"red",

"green",

"#ccc123",

"#345232",

"#231111",

"#ab2322"

],

random : function (num){

return Math.floor(Math.random()*num);// 获得一个num-1的整数

},

init : function (num){

// 最多个数

this.maxlength = num;

// 边界

this.maxWidth = (document.documentElement.clientWidth || document.body.clientWidth) + 20;

// 边界

this.maxHeight = (document.documentElement.clientHeight || document.body.clientHeight) + 20;

this.create();

this.move();

},

// 创建

create : function (){

var that = this;

setInterval(function (){

// 当数组中的数量,比最大数量要小的时候 开始创建

if( that.arr.length < that.maxlength){

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

// 内容和 颜色是随机的 颜色和文字库里面的

d.innerHTML = that.snowflake[that.random(that.snowflake.length)];

d.style.color = that.snowflakeColor[that.random(that.snowflakeColor.length)];

d.style.position = "absolute";

// 位置是随机的 top(0- -99) left (0 - that.maxWidth*2/3-1)

d.style.left = that.random(that.maxWidth*2/3) + "px";

d.style.top = -that.random(100) + "px";

// 速度

d.vx = 2+that.random(10);

d.vy = 3+that.random(10);

// 数组添加元素, body 添加元素

document.body.appendChild(d);

that.arr.push(d)

}

},20)

},

// 运动

move : function (){

var that = this;

var arr = that.arr;

setInterval(function (){

// 循环数组中的每一个元素

for(var i = 0 ; i < arr.length ; i ++ ){

// 替换位置

arr[i].style.left = arr[i].offsetLeft + arr[i].vx + "px";

arr[i].style.top = arr[i].offsetTop + arr[i].vy + 'px';

// 判断边界 删除元素

if (arr[i].offsetTop >= that.maxHeight || arr[i].offsetLeft >= that.maxWidth) {

document.body.removeChild(arr[i]);

arr.splice(i,1);

}

}

},30)

}

}

window.onload = function (){

snowflakes.init(100);

}

效果图

以上就是JavaScript 实现下雪特效的示例代码的详细内容,更多关于JavaScript 实现下雪特效的资料请关注脚本之家其它相关文章!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。