提示💡 动态增加 div; div 每10秒下降3px;透明度减少0.003; 当div降落到屏幕底部时,移除这个 div; 重复以上操作。 //1.增加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); }; //2.雪花自动降落 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); }; //3.形成最后效果 function final(bigSnowParam,snowShape) { for (var i = 0; i < bigSnowParam.snowNum; i++) { addChild(parseInt(Math.random() * window.innerHeight),snowShape); } autoWipe(bigSnowParam.snowSpeed,snowShape); }; //4.参数选择,snowNum 为每批降雪数量,snowSpeed为每批降雪速度,单位为秒 //大雪参考值 var bigSnowParam = { snowNum:242, snowSpeed:6 }; //中雪参考值 var midSnowParam = { snowNum:242, snowSpeed:3 }; //小雪参考值 var littleSnowParam = { snowNum:242, snowSpeed:1 }; //自定义雪参考值 var selfSnowParam = { snowNum:300,//值为number snowSpeed:3//值为number }; //雪花形状参考 var snowShapeObj = { 1:'❆', 2:'❄', 3:'❅', 4:'✼', 5:'✼', 6:'❉', 7:'❇', 8:'❈', 9:'❊', 10:'✥', 11:'✺' }; //5.调用 final(bigSnowParam,snowShapeObj[1]); github 源码下载地址: 扩展阅读 性能增强:will-change