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 相关文章推荐
JavaScript基础教程之alert弹出提示框实例
Oct 16 Javascript
jquery 将当前时间转换成yyyymmdd格式的实现方法
Jun 01 Javascript
使用jquery获取url及url参数的简单实例
Jun 14 Javascript
jQuery给表格添加分页效果
Mar 02 Javascript
React学习笔记之事件处理(二)
Jul 02 Javascript
基于vue开发的在线付费课程应用过程
Jan 25 Javascript
JS函数内部属性之arguments和this实例解析
Oct 07 Javascript
Vue项目安装插件并保存
Jan 28 Javascript
vue实现可视化可拖放的自定义表单的示例代码
Mar 20 Javascript
JavaScript实现网页下拉菜单效果
Nov 20 Javascript
js观察者模式的弹幕案例
Nov 23 Javascript
使用js获取身份证年龄的示例代码
Dec 11 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
探讨:web上存漏洞及原理分析、防范方法
2013/06/29 PHP
兼容PHP和Java的des加密解密代码分享
2014/06/26 PHP
php类中的各种拦截器用法分析
2014/11/03 PHP
基于PHP实现商品成交时发送短信功能
2016/05/11 PHP
php使用file函数、fseek函数读取大文件效率对比分析
2016/11/04 PHP
PHP实现的简单排列组合算法应用示例
2017/06/20 PHP
利用Homestead快速运行一个Laravel项目的方法详解
2017/11/14 PHP
Javascript实现div的toggle效果实例分析
2015/06/09 Javascript
jquery实现TAB选项卡鼠标经过带延迟效果的方法
2015/07/27 Javascript
JS+CSS实现类似QQ好友及黑名单效果的树型菜单
2015/09/22 Javascript
JS中使用apply方法通过不同数量的参数调用函数的方法
2016/05/31 Javascript
jQuery基于函数重载实现自定义Alert函数样式的方法
2016/07/27 Javascript
JS简单判断滚动条的滚动方向实现方法
2017/04/28 Javascript
JavaScript之iterable_动力节点Java学院整理
2017/06/29 Javascript
详解vue-router 命名路由和命名视图
2018/06/01 Javascript
Nodejs实现多文件夹文件同步
2018/10/17 NodeJs
js实现圆形显示鼠标单击位置
2020/02/11 Javascript
element-ui点击查看大图的方法示例
2020/12/14 Javascript
[03:02]2020完美世界城市挑战赛(秋季赛)总决赛回顾
2021/03/11 DOTA
用Python代码来解图片迷宫的方法整理
2015/04/02 Python
python中列表和元组的区别
2017/12/18 Python
PyQt5每天必学之拖放事件
2020/08/27 Python
Python读取mat文件,并保存为pickle格式的方法
2018/10/23 Python
Python中 Global和Nonlocal的用法详解
2020/01/20 Python
美国设计师精美珠宝购物网:Netaya
2016/08/28 全球购物
Lookfantastic香港官网:英国知名美妆购物网站
2018/06/19 全球购物
小学生秋游活动方案
2014/02/23 职场文书
经典促销广告词大全
2014/03/19 职场文书
志愿者活动总结范文
2014/04/26 职场文书
临床专业自荐信
2014/06/22 职场文书
大学感恩节活动策划方案
2014/10/11 职场文书
不同意离婚答辩状
2015/05/22 职场文书
2015年秋季运动会广播稿
2015/08/19 职场文书
2015教师个人年度工作总结
2015/10/23 职场文书
php字符串倒叙
2021/04/01 PHP
基于Pygame实现简单的贪吃蛇游戏
2021/12/06 Python