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 相关文章推荐
基于JQuery框架的AJAX实例代码
Nov 03 Javascript
jquery 模板的应用示例
Nov 12 Javascript
禁止页面刷新让F5快捷键及右键都无效
Jan 22 Javascript
一道常被人轻视的web前端常见面试题(JS)
Feb 15 Javascript
利用vue.js插入dom节点的方法
Mar 15 Javascript
原生JS实现的简单小钟表功能示例
Aug 30 Javascript
浅谈angularJs函数的使用方法(大小写转换,拷贝,扩充对象)
Oct 08 Javascript
微信小程序实现动态显示和隐藏某个控件功能示例
Dec 14 Javascript
详解微信小程序开发(项目从零开始)
Jun 06 Javascript
countup.js实现数字动态叠加效果
Oct 17 Javascript
在node环境下parse Smarty模板的使用示例代码
Nov 15 Javascript
javascript实现前端成语点击验证优化
Jun 24 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操作文件方法问答
2007/03/16 PHP
PHP中session跨子域的三种实现方法
2016/07/25 PHP
网络之美 JavaScript中Get和Set访问器的实现代码
2010/09/19 Javascript
range 标准化之获取
2011/08/28 Javascript
Javascript中String的常用方法实例分析
2015/06/13 Javascript
详解AngularJS中的表达式使用
2015/06/16 Javascript
jquery实现两个图片渐变切换效果的方法
2015/06/25 Javascript
javascript实现一个简单的弹出窗
2016/02/22 Javascript
Bootstrap4一次重大更新 几乎涉及每行代码
2016/05/16 Javascript
JavaScript简单获取页面图片原始尺寸的方法
2016/06/21 Javascript
Angular的自定义指令以及实例
2016/12/26 Javascript
通过学习bootstrop导航条学会修改bootstrop颜色基调
2017/06/11 Javascript
微信小程序下拉刷新界面的实现
2017/09/28 Javascript
手写简单的jQuery雪花飘落效果实例
2018/04/22 jQuery
JavaScript字符串转数字的5种方法及遇到的坑
2018/07/16 Javascript
js实现登录时记住密码的方法分析
2020/04/05 Javascript
浅析Python多线程下的变量问题
2015/04/28 Python
python利用Opencv实现人脸识别功能
2019/04/25 Python
搞清楚 Python traceback的具体使用方法
2019/05/13 Python
关于Python中的向量相加和numpy中的向量相加效率对比
2019/08/26 Python
Python中用pyinstaller打包时的图标问题及解决方法
2020/02/17 Python
python实现翻译word表格小程序
2020/02/27 Python
python3中sorted函数里cmp参数改变详解
2020/03/12 Python
使用 css3 transform 属性来变换背景图的方法
2019/05/07 HTML / CSS
德国二手设计师时装和复古时装跳蚤市场:Mädchenflohmarkt
2020/11/09 全球购物
Java工程师面试集锦之Spring框架
2013/06/16 面试题
大学生职业规划范文:象牙塔生活的四年计划
2014/01/14 职场文书
大学生求职自我评价
2014/01/16 职场文书
甜美蛋糕店创业计划书
2014/01/30 职场文书
课程改革实施方案
2014/03/16 职场文书
综合测评个人总结
2015/03/03 职场文书
新学期主题班会
2015/08/17 职场文书
《丑小鸭》教学反思
2016/02/19 职场文书
党风廉政建设心得体会
2019/05/21 职场文书
制定企业培训计划的五大要点!
2019/07/10 职场文书
导游词之太原天龙山
2020/01/02 职场文书