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 相关文章推荐
关于flash遮盖div浮动层的解决方法
Jul 17 Javascript
JQuery EasyUI 对话框的使用方法
Oct 24 Javascript
jq选项卡鼠标延迟的插件实例
May 13 Javascript
JavaScript给input的value赋值引发的关于基本类型值和引用类型值问题
Dec 07 Javascript
javascript实现图片轮播效果
Jan 20 Javascript
jQuery插件HighCharts实现的2D面积图效果示例【附demo源码下载】
Mar 15 Javascript
js实现点击切换checkbox背景图片的简单实例
May 08 Javascript
vue.js整合vux中的上拉加载下拉刷新实例教程
Jan 09 Javascript
vue和webpack打包项目相对路径修改的方法
Jun 15 Javascript
一份超级详细的Vue-cli3.0使用教程【推荐】
Nov 15 Javascript
EasyUI 数据表格datagrid列自适应内容宽度的实现
Jul 18 Javascript
详解Vue3.0 + TypeScript + Vite初体验
Feb 22 Vue.js
微信小程序自定义胶囊样式
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代码
2012/07/17 PHP
php读取本地json文件的实例
2018/03/07 PHP
浅谈PHP进程管理
2019/03/08 PHP
php面试实现反射注入的详细方法
2019/09/30 PHP
THINKPHP5.1 Config的配置与获取详解
2020/06/08 PHP
javascript编程起步(第六课)
2007/02/27 Javascript
用jquery和json从后台获得数据集的代码
2011/11/07 Javascript
Jquery选中或取消radio示例
2013/09/29 Javascript
JS判断不能为空实例代码
2013/11/26 Javascript
HTML,CSS,JavaScript速查表推荐
2014/12/02 Javascript
jQuery后代选择器用法实例
2014/12/23 Javascript
jQuery实现仿百度帖吧头部固定导航效果
2015/08/07 Javascript
JS中页面与页面之间超链接跳转中文乱码问题的解决办法
2016/12/15 Javascript
Angular1.x复杂指令实例详解
2017/03/01 Javascript
基于vue的换肤功能的示例代码
2017/10/10 Javascript
vue计算属性和监听器实例解析
2018/05/10 Javascript
Vue+Typescript中在Vue上挂载axios使用时报错问题
2019/08/07 Javascript
jQuery实现提交表单时不提交隐藏div中input的方法
2019/10/08 jQuery
JS深入学习之数组对象排序操作示例
2020/05/01 Javascript
python实现的jpg格式图片修复代码
2015/04/21 Python
Python实现简单截取中文字符串的方法
2015/06/15 Python
Python读取一个目录下所有目录和文件的方法
2016/07/15 Python
Python实现的旋转数组功能算法示例
2019/02/23 Python
Python使用LDAP做用户认证的方法
2019/06/20 Python
Django如何简单快速实现PUT、DELETE方法
2019/07/24 Python
浅析pandas 数据结构中的DataFrame
2019/10/12 Python
如何基于python测量代码运行时间
2019/12/25 Python
基于OpenCV的路面质量检测的实现
2020/11/04 Python
宝拉珍选英国官网:Paula’s Choice英国
2019/05/29 全球购物
酒店总经理欢迎词
2014/01/15 职场文书
有关骆驼祥子的读书笔记
2015/06/26 职场文书
《百分数的认识》教学反思
2016/02/19 职场文书
2019森林防火宣传标语大全!
2019/07/03 职场文书
python获取淘宝服务器时间的代码示例
2021/04/22 Python
Maven学习----Maven安装与环境变量配置教程
2021/06/29 Java/Android
windows server2008 开启端口的实现方法
2022/06/25 Servers