原理 :
1、js动态创建DIV,指定CLASS类设置不同的背景图样式显示不同的雪花效果。
2、js获取创建的DIV并改变其top属性值,当下落的高度大于屏幕高后删除该移动div
3、好像不够完善勿喷
HTML代码:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>雪花飞舞</title> <link rel="stylesheet" href="css/index.css"> <script src="/UploadFiles/2021-04-02/move.js">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: 0 auto; } .snow_parent div.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:0 0; 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代码:
/* creatBy jiucheng 2016-4-24 */ window.onload=function(){ init(); } // 创建DIV function creatDiv(){ // 创建DIV并追加到父元素 var snowDiv=document.createElement("div"); document.getElementById("js_sonw").appendChild(snowDiv); // 让创建DIV的class为随机,显示不同的雪花 var whatName=["snow_one parent","snow_two parent","snow_three parent","snow_four parent"]; var index=Math.floor(Math.random()*whatName.length); snowDiv.className=whatName[index]; // 获取该DIV的left属性值(随机的)并赋值给创建的DIV var whatLeft=getLeft()+'px'; snowDiv.style.left=whatLeft; return snowDiv; } // 获取随机left属性值 function getLeft(){ // 获取该DIV的最大left属性值即父元素的宽度 var eleParent=document.getElementById("js_sonw"); // 获取父元素的所有style样式 var style=window.getComputedStyle(eleParent); // CSS中的left是负数这里得减去下 var maxWidth=parseInt(style.width)+70; // 让创建的DIV的left为随机值 var randomLeft=Math.floor(Math.random()*maxWidth); return randomLeft; } // 让其向下移动 function moveDown(){ // 获取移动对象 var moveElem=creatDiv(); // 获取移动对象的所有style属性值 var eleStyle=window.getComputedStyle(moveElem); // 获取它的top属性值 var eleTop=parseInt(eleStyle.top); // 设置定时器动态改变移动对象的top属性值 var t=setInterval(function(){ eleTop++; // 把新的top值付给移动对象 moveElem.style.top=eleTop+"px"; // 当下落到屏幕的高度后停止定时器并把该移动对象从父元素删除 if(eleTop>=window.innerHeight){ clearInterval(t); document.getElementById("js_sonw").removeChild(moveElem); } },10);//下落速度没10毫秒下落1px } function init(){ // 动态获取并设置body的高度 document.body.style.height=window.innerHeight+"px"; // 每500毫秒创建一个移动对象并执行移动函数 var t=setInterval(function(){ moveDown(); },100); }以上这篇javascript实现下雪效果【实例代码】就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
暂无评论...
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。
更新日志
2024年11月30日
2024年11月30日
- 模拟之声慢刻CD《摇滚五杰》[低速原抓WAV+CUE]
- 罗云熙《罗云熙「此刻 X 以光」演唱会Live合辑》[320K/MP3][184.22MB]
- 罗云熙《罗云熙「此刻 X 以光」演唱会Live合辑》[FLAC/分轨][978.14MB]
- 罗维《拉赫玛尼诺夫 第三钢琴协奏曲》[320K/MP3][99MB]
- 许巍-每一刻都是崭新的【wav】
- 【House风格】VA-2024-TheDeepCollective:MelodicHaze(FLAC)
- LuciaMicarelli《AnEveningWithLuciaMicarelli(Live)》[WAV分轨]
- 娜琏《NA》[320K/MP3][51.93MB]
- 娜琏《NA》[FLAC/分轨][293.28MB]
- (G)I-DLE《I SWAY》[320K/MP3][26.11MB]
- 黑鸭子2005-发烧[首版][WAV+CUE]
- 黄思婷2002-感动[豪记唱片][WAV+CUE]
- 黄乙玲1993-受伤的心·冷暖人生[台湾首版][WAV+CUE]
- (G)I-DLE《I SWAY》[FLAC/分轨][150.46MB]
- FTISLAND《Serious》[320K/MP3][82.33MB]