js实现漂亮的雪花飘落效果

效果如下:

雪花飘落

四个按钮控制雪花的生成与停止

关键代码:
这个代码还有许多不足,希望大佬指正

var W = window.innerWidth;   //获取屏幕的宽高
var H = window.innerHeight;
var add_snow = null;         //把add_snow定时器全局变量,方便删除
var angle = 0;               //增加参数
var flag = false;            //是否有雪花元素//增加雪花
function add() {for (var i = 1; i <= 100; i++) {var mydiv = document.createElement("div");var size = Math.random()*24+1+"px";mydiv.style.width = sizemydiv.style.height = sizemydiv.style.backgroundImage="url('images/white-snow.png')";mydiv.style.backgroundSize="cover";mydiv.style.position = "absolute";mydiv.style.left = Math.random() * (W-50) + "px";mydiv.style.top = Math.random() * (H-50) + "px";flag = true;document.body.appendChild(mydiv);}
}//开始雪花沈阳
function start(){if (add_snow){}else {add_snow = setInterval(function (){update()},100)}
}//删除雪花元素
function del() {var allSnow = document.getElementsByTagName("div");var length = allSnow.length;for (var i = 0; i < length; i++) {//                document.body.removeChild(allSnow[i]);  // 删除body的子节点allSnow[0].remove();                // 直接将该元素删
//                  allSnow[i].style.display = "none";  // 通过设置元素为不可见来模拟删除}flag = falseclearInterval(add_snow)add_snow = null;
}//雪花的下落效果
function update(){if (flag){angle += 0.01;var allSnow = document.getElementsByTagName("div");var length = allSnow.length;for (var i = 0; i < length; i++) {var x = Math.sin(angle)*2var y = Math.cos(angle+parseFloat(allSnow[i].style.height.slice(0,-2)))+1+parseFloat(allSnow[i].style.height.slice(0,-2))/2allSnow[i].style.left = x+parseFloat(allSnow[i].style.left.slice(0,-2)) + "px";allSnow[i].style.top = y +parseFloat(allSnow[i].style.top.slice(0,-2))+ "px";var x1 = x+parseFloat(allSnow[i].style.left.slice(0,-2));var y1 = y +parseFloat(allSnow[i].style.top.slice(0,-2));if(x1 > W-50 || x1 < 0||  y1 > H-50){allSnow[i].style.left = Math.random() * (W-50) + "px";allSnow[i].style.top = 20 + "px";}}}else {add()}}//暂停雪花效果
function stop(){clearInterval(add_snow)add_snow = null;
}

项目的下载地址:
https://github.com/Try-your-best-to-do/snow
点击进入

js实现漂亮的雪花飘落效果相关推荐

  1. JS实现炫酷雪花飘落效果

    用js实现漂亮的雪花飘过效果: 步骤: 页面基本样式,雪花旋转动画效果 body{width: 100vw;height: 100vh;background-color: #000;overflow: ...

  2. html js满屏飘雪特效,JS实现炫酷雪花飘落效果

    用js实现漂亮的雪花飘过效果: 步骤: 页面基本样式,雪花旋转动画效果 body{ width: 100vw; height: 100vh; background-color: #000; overf ...

  3. HTML圣诞节代码,圣诞节贺卡源代码,实现圣诞节雪花飘落效果

    HTML圣诞节代码,圣诞节贺卡源代码,实现圣诞节雪花飘落效果 完整代码下载地址:HTML圣诞节代码,圣诞节贺卡源代码,实现圣诞节雪花飘落效果 index.html <!DOCTYPE html& ...

  4. JS实现逼真的雪花飘落特效

    逼真的雪花飘落特效 效果图: 图片素材 : --> ParticleSmoke.png 代码如下,复制即可使用: <!doctype html> <html> <h ...

  5. java实现物体下落效果_手撸一个物体下落的控件,实现雪花飘落效果

    效果图: 圣诞登录页.gif 参考文章: Android自定义View--从零开始实现雪花飘落效果 感谢原文作者,不仅实现了效果,并且写得非常详细,还做了优化.笔者参考原文作者的源码,做了一点修改,实 ...

  6. python实现雪花飘落效果_python实现雪花飘落效果实例讲解及源码分享!

    点击蓝字"python教程"关注我们哟! 前言 Python现在非常火,语法简单而且功能强大,很多同学都想学Python!所以小的给各位看官们准备了高价值Python学习视频教程及 ...

  7. java飘落的雪花_[Java教程]实现雪花飘落效果

    [Java教程]实现雪花飘落效果 0 2016-11-02 21:00:17 雪花飘落 body{background:#000;background: url(http://www.wallcoo. ...

  8. android雪花飘落效果,【OpenGL】Shader实例分析(七)- 雪花飘落效果

    研究了一个雪花飘落效果.感觉挺不错的.分享给大家,效果例如以下: 代码例如以下: Shader "shadertoy/Flakes" { // https://www.shader ...

  9. Android之雪花飘落效果

    Android之雪花飘落效果 一:效果图 二:实现步骤 1:FallObject 下落物体 封装 2:自定义雪花飘View 3:xml布局 4:activity使用 三:最后 一:效果图 Androi ...

  10. HTML5 小练习2—仿华为官网(实现随机雪花飘落效果)

    文章目录 一.界面展示 二.突出显示效果(当鼠标指向时) 1.广告部分动画 2.商品价格突出显示 3.导航栏文字突出显示 三.项目目录 四.CSS样式代码 1.雪花部分实现 五.页面代码 1.inde ...

最新文章

  1. 饿了么异地双活数据库实战
  2. Fragment使用--文章集锦
  3. Mybatis动态代理模式实现CRUD
  4. 7-9 N个数求和 (20 分)
  5. 【前端图表】echarts散点图鼠标划过散点显示信息
  6. OpenCV与AIPCV库——学习笔记(一)
  7. QoS队列调度技术详解
  8. golang 捕获堆栈信息_一篇文章教你如何捕获前端错误
  9. SDN的机遇与挑战 让宽带利用率与硬件不再是难题
  10. rocketmq云服务搭建踩坑
  11. MFC 鼠标画线总结
  12. Cadence Allegro修改静态铜皮为动态铜皮图文教程及视频演示
  13. 高等数学(第七版)同济大学 习题7-4 个人解答
  14. linux yes 命令_如何在Linux上使用yes命令
  15. 3D立体画的绘制规律
  16. 题目7飞机票订票系统
  17. 如何把一张透明的图片做成不透明的
  18. 前端性能优化 七个方面
  19. WebAssembly技术_在Web端运行C与C++程序(win10)
  20. 注册DLL文件命令的使用方法详细说明

热门文章

  1. lmdb.Error: 路径 : ϵͳ�Ҳ���ָ����·����解决办法
  2. 成考计算机专业难不难,成人高考计算机类难度大吗(成人大学难度)
  3. 计算机主机箱的类型,电脑机箱尺寸分类
  4. so easy 的 Vue3.0自定义指令(也搜一贼)
  5. 视频云服务四路玩家,谁是最大赢家
  6. 初识搜索引擎_搜索相关参数梳理以及bouncing results问题解决方案
  7. Bouncing Ball
  8. 矩阵相抵的一道例题(对称+主子式)
  9. prometheus 告警配置以及配置项解释
  10. 自然语言处理NLP星空智能对话机器人系列:深入理解Transformer自然语言处理 Training a GPT-2 language model Steps 7 to 9