JavaScript实现雪花飘落效果


Posted in Javascript onDecember 27, 2020

本文实例为大家分享了JavaScript实现雪花飘落效果的具体代码,供大家参考,具体内容如下

一、实现功能

(1)添加一个背景图片;
(2)用js语言实现雪花飘落效果;
(3)使用setInterval定时器每800毫秒创建一个雪花;
(4)把每一个雪花作为参数传进动态下落的方法中即可。

二、展示

1.代码展示

代码如下:

<!DOCTYPE html>
<html lang="en">

<head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width, initial-scale=1.0">
 <style>
 body {
  background-color: #000;
  /*防止出现向下滚动条*/
  overflow: hidden;
 }
 </style>
</head>

<body>
 <img src="1.jpg" style="height: 800px; width:1500px;">
 <script>
 function snow() {
  // 1、定义一片雪花模板
  var flake = document.createElement('div');
  // 雪花字符 ❄❉❅❆✻✼❇❈❊✥✺
  flake.innerHTML = '❅';
  flake.style.cssText = 'position:absolute;color:#fff;';

  //获取页面的高度 相当于雪花下落结束时Y轴的位置
  var documentHieght = window.innerHeight;
  //获取页面的宽度,利用这个数来算出,雪花开始时left的值
  var documentWidth = window.innerWidth;

  //定义生成一片雪花的毫秒数
  var millisec =10;
  //2、设置第一个定时器,周期性定时器,每隔一段时间(millisec)生成一片雪花;
  setInterval(function() { //页面加载之后,定时器就开始工作
  //随机生成雪花下落 开始 时left的值,相当于开始时X轴的位置
  var startLeft = Math.random() * documentWidth;

  //随机生成雪花下落 结束 时left的值,相当于结束时X轴的位置
  var endLeft = Math.random() * documentWidth;

  //随机生成雪花大小
  var flakeSize = 3 + 20 * Math.random();

  //随机生成雪花下落持续时间
  var durationTime = 4000 + 7000 * Math.random();

  //随机生成雪花下落 开始 时的透明度
  var startOpacity = 0.7 + 0.3 * Math.random();

  //随机生成雪花下落 结束 时的透明度
  var endOpacity = 0.2 + 0.2 * Math.random();

  //克隆一个雪花模板
  var cloneFlake = flake.cloneNode(true);

  //第一次修改样式,定义克隆出来的雪花的样式
  cloneFlake.style.cssText += `
   left: ${startLeft}px;
   opacity: ${startOpacity};
   font-size:${flakeSize}px;
   top:-25px;
    transition:${durationTime}ms;`;

  //拼接到页面中
  document.body.appendChild(cloneFlake);

  //设置第二个定时器,一次性定时器,
  //当第一个定时器生成雪花,并在页面上渲染出来后,修改雪花的样式,让雪花动起来;
  setTimeout(function() {
   //第二次修改样式
   cloneFlake.style.cssText += `
    left: ${endLeft}px;
    top:${documentHieght}px;
    opacity:${endOpacity};`;

   //4、设置第三个定时器,当雪花落下后,删除雪花。
   setTimeout(function() {
   cloneFlake.remove();
   }, durationTime);
  }, 0);

  }, millisec);
 }
 snow();
 </script>
</body>
</html>

2.效果展示

代码如下(示例):

JavaScript实现雪花飘落效果

总结

学会了使用JS语言实现雪花飘落特效效果;运用了定时器控制雪花出现的速度;

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
“不能执行已释放的Script代码”错误的原因及解决办法
Sep 09 Javascript
setAttribute 与 class冲突解决
Feb 17 Javascript
js字符编码函数区别分析
Jun 05 Javascript
javascript 文本框水印/占位符(watermark/placeholder)实现方法
Jan 15 Javascript
js图片实时加载提供网页打开速度
Sep 11 Javascript
基于javascript实现九宫格大转盘效果
May 28 Javascript
jQuery自定义数值抽奖活动代码
Jun 11 Javascript
Vue.js计算属性computed与watch(5)
Dec 09 Javascript
import与export在node.js中的使用详解
Sep 28 Javascript
javascript实现的时间格式加8小时功能示例
Jun 13 Javascript
layui树形菜单动态遍历的例子
Sep 23 Javascript
vuex实现像调用模板方法一样调用Mutations方法
Nov 06 Javascript
微信小程序自定义胶囊样式
Dec 27 #Javascript
JS实现鼠标移动拖尾
Dec 27 #Javascript
JavaScript实现滚动加载更多
Dec 27 #Javascript
jQuery实现简单轮播图效果
Dec 27 #jQuery
JavaScript实现瀑布流布局的3种方式
Dec 27 #Javascript
Vue实现省市区三级联动
Dec 27 #Vue.js
JavaScript实现通讯录功能
Dec 27 #Javascript
You might like
理解php原理的opcodes(操作码)
2010/10/26 PHP
php 网上商城促销设计实例代码
2012/02/17 PHP
php使用百度翻译api示例分享
2014/01/31 PHP
php集成套件服务器xampp安装使用教程(适合第一次玩PHP的新手)
2015/06/03 PHP
WordPress中注册菜单与调用菜单的方法详解
2015/12/18 PHP
PHP 根据key 给二维数组分组
2016/12/09 PHP
js从Cookies里面取值的简单实现
2014/06/30 Javascript
JavaScript判断表单提交时哪个radio按钮被选中的方法
2015/03/21 Javascript
JavaScript中的getMilliseconds()方法使用详解
2015/06/10 Javascript
在jQuery中处理XML数据的大致方法
2015/08/14 Javascript
js获取鼠标位置实例详解
2015/12/09 Javascript
MVC+jQuery.Ajax异步实现增删改查和分页
2020/12/22 Javascript
jQuery Validate 数组 全部验证问题
2017/01/12 Javascript
JS实现的Unicode编码转换操作示例
2017/04/28 Javascript
angular之ng-template模板加载
2017/11/09 Javascript
JavaScript实现写入文件到本地的方法【基于FileSaver.js插件】
2018/03/15 Javascript
uni-app使用微信小程序云函数的步骤示例
2020/05/22 Javascript
基于vue hash模式微信分享#号的解决
2020/09/07 Javascript
JS实现密码框效果
2020/09/10 Javascript
shell命令行,一键创建 python 模板文件脚本方法
2018/03/20 Python
python requests post多层字典的方法
2018/12/27 Python
Python获取时间戳代码实例
2019/09/24 Python
python滑块验证码的破解实现
2019/11/10 Python
python 实现多线程下载m3u8格式视频并使用fmmpeg合并
2019/11/15 Python
PyQt5通过信号实现MVC的示例
2021/02/06 Python
html5 初试 indexedDB(推荐)
2016/07/21 HTML / CSS
酒吧副总经理岗位职责
2013/12/10 职场文书
医院办公室主任职责
2013/12/29 职场文书
校园活动策划书范文
2014/01/10 职场文书
护理人员的自我评价分享
2014/03/15 职场文书
高校教师岗位职责
2014/03/18 职场文书
开工仪式主持词
2014/03/20 职场文书
2014年党员公开承诺践诺书
2014/03/25 职场文书
公司股份合作协议书
2014/12/07 职场文书
大学生就业推荐表自我评价
2015/03/02 职场文书
Python Matplotlib绘制等高线图与渐变色扇形图
2022/04/14 Python