分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 前端开发

js实现飘雪效果

发布时间:2023-09-06 02:33责任编辑:顾先生关键词:js

大家也许见过到以下场景:

1、逢年过年或活动日,各大网站(淘宝,京东等)飘着漫天红包;

2、下雨下雪的时候美团上的外卖地图上会有飘雨飘雪的景象;

3、手机里的天气背景有电闪雷鸣的效果;

下面用原生js给大家简单实现一个漫天飘雪的动效。

在开始编程之前,我们先简单理一下思路(实现这样的效果步骤):

1、js动态增加div;

2、div每10秒下降3px;透明度减少0.003;

3、当div降落到屏幕底部时,移除这个div;

4、重复以上操作。

上代码:

//增加div
function addChild(top,snowShape) {
???var div = document.createElement("div");
???div.innerHTML = snowShape;
???div.className = "flake";
???div.style.position = ‘absolute‘;
???div.style.color = ‘white‘;
???div.style.opacity = 0.9;
???div.style.left = parseInt(Math.random() * window.innerWidth) + ‘px‘;
???div.style.top = top + ‘px‘;
???div.style.fontSize = parseInt(Math.random() * 50) + ‘px‘;
???document.body.appendChild(div);
};
//雪花自动降落
function autoWipe(snowSpeed,snowShape) {
???var flake = document.getElementsByClassName(‘flake‘);
???var timer = setInterval(function () {
???????for (var i = 0; i < flake.length; i++) {
???????????var opacity = flake[i].style.opacity;
???????????var offsetTop = Number((flake[i].style.top).replace(‘px‘,‘‘));
???????????if (offsetTop < window.innerHeight) {
???????????????offsetTop = offsetTop + snowSpeed;
???????????????opacity = opacity - 0.003;
???????????????flake[i].style.top = offsetTop + ‘px‘;
???????????????flake[i].style.opacity = opacity;
???????????} else {
???????????????document.body.removeChild(flake[i]);
???????????????addChild(0,snowShape);
???????????}
???????}
???}, 100);
};
//调用以上方法
function final(bigSnowParam,snowShape) {
???for (var i = 0; i < bigSnowParam.snowNum; i++) {
???????addChild(parseInt(Math.random() * window.innerHeight),snowShape);
???}
???autoWipe(bigSnowParam.snowSpeed,snowShape);
};
//形成最后效果
function final(bigSnowParam,snowShape) {
???for (var i = 0; i < bigSnowParam.snowNum; i++) {
???????addChild(parseInt(Math.random() * window.innerHeight),snowShape);
???}
???autoWipe(bigSnowParam.snowSpeed,snowShape);
};
参数值

//大雪参考值
var bigSnowParam = {
??????snowNum:242,
??????snowSpeed:6
};
//中雪参考值
var midSnowParam = {
???snowNum:242,
???snowSpeed:3
};
//小雪参考值
var littleSnowParam = {
???snowNum:242,
???snowSpeed:1
};
//自定义雪参考值
var selfSnowParam = {
???snowNum:‘‘,//值为number
???snowSpeed:‘‘//值为number
};
//雪花形状参考
var snowShapeObj = {
???1:‘?‘,
???2:‘?‘,
???3:‘?‘,
???4:‘?‘,
???5:‘?‘,
???6:‘?‘,
???7:‘?‘,
???8:‘?‘,
???9:‘?‘,
???10:‘?‘,
???11:‘?‘
};
//调用
final(bigSnowParam,snowShapeObj[1]);
效果图(不能上传视频,只能截图)

js实现飘雪效果

原文地址:https://www.cnblogs.com/xpwu/p/10385909.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved