前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >js原生项目之下雪了 js逻辑 css逻辑 html逻辑

js原生项目之下雪了 js逻辑 css逻辑 html逻辑

作者头像
贵哥的编程之路
发布2021-06-08 21:40:25
2K0
发布2021-06-08 21:40:25
举报

html逻辑:

代码语言:javascript
复制
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <link rel="stylesheet" href="style.css" />
    <link
      rel="stylesheet"
      href="https://use.fontawesome.com/releases/v5.13.1/css/all.css"
      integrity="sha384-xxzQGERXS00kBmZW/6qxqJPyxW3UR0BPsL4c8ILaIWXva5kFi7TxkIIaMiKtqV1Q"
      crossorigin="anonymous"
    />
    <title>❄️ 雪一直下 ❄️</title>
  </head>
  <body>
    <script src="main.js"></script>
  </body>
</html>

css逻辑:

代码语言:javascript
复制
* {
  box-sizing: border-box;
}

body {
  background-color: #323975;
  height: 100vh;
  overflow: hidden;
  margin: 0;
}

.fa-snowflake {
  color: #fff;
  position: absolute;
  top: -20px;
  animation: fall linear forwards;
}

@keyframes fall {
  to {
    transform: translateY(105vh);
  }
}

解释:

在这里插入图片描述
在这里插入图片描述

第一步:从上边-20px的地方下来.

在这里插入图片描述
在这里插入图片描述

第二步:到下边105vh的地方去。也就是说整个屏幕的高度*105%就行了. 第三步:动画动画动起来.

在这里插入图片描述
在这里插入图片描述

动画的意思是线性的永远的执行下去.

js逻辑:

代码语言:javascript
复制
const body = document.body;

function createSnowFlake() {
  const snow_flake = document.createElement('i');
  snow_flake.classList.add('fas');
  snow_flake.classList.add('fa-snowflake');
  // 创建产生的位置
  snow_flake.style.left = Math.random() * window.innerWidth + 'px';
  // 雪花大小
  snow_flake.style.fontSize = Math.random() * 20 + 10 + 'px';
  // 雪花透明度
  snow_flake.style.opacity = Math.random();
  // 动画时间
  snow_flake.style.animationDuration = Math.random() * 3 + 4 + 's';

  document.body.appendChild(snow_flake);

  setTimeout(() => {
    snow_flake.remove();
  }, 6000);
}

setInterval(createSnowFlake, 100);

第一步:获取到整个body

在这里插入图片描述
在这里插入图片描述

第二步:把两个类名都放到i标签上。

在这里插入图片描述
在这里插入图片描述

第三步:什么时候开始?

在这里插入图片描述
在这里插入图片描述

第四步:什么时候结束?

在这里插入图片描述
在这里插入图片描述

雪花的核心代码: 1.ath.random()产生0-1之间的小数值 2.加10是因为雪花太小了看不见.

在这里插入图片描述
在这里插入图片描述
代码语言:javascript
复制
 const snow_flake = document.createElement('i');
  snow_flake.classList.add('fas');
  snow_flake.classList.add('fa-snowflake');
  // 创建产生的位置
  snow_flake.style.left = Math.random() * window.innerWidth + 'px';
  // 雪花大小
  snow_flake.style.fontSize = Math.random() * 20 + 10 + 'px';
  // 雪花透明度
  snow_flake.style.opacity = Math.random();
  // 动画时间
  snow_flake.style.animationDuration = Math.random() * 3 + 4 + 's';

  document.body.appendChild(snow_flake);

效果图:

在这里插入图片描述
在这里插入图片描述
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-05-27 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档