HTML+CSS每周一练——加载动画

先丢一个预览图


一. HTML结构

<body>
   <h1>
      <span>l</span>
      <span>o</span>
      <span>a</span>
      <span>d</span>
      <span>i</span>
      <span>n</span>
      <span>g</span>
      <span>.</span>
      <span>.</span>
      <span>.</span>
   </h1>
</body>
    结构十分简单

二. CSS样式

1.首先引用一下谷歌字体

@import url("https://fonts.googleapis.com/css?family=Luckiest+Guy");

2.设置下网页的样式

body {
  position: absolute;
  width: 95%;
  height: 98%;
  background-color: skyblue;
  background-size: 100% 100%;
  font-family: "Luckiest Guy", cursive;
}

// 设置顶部的一个白光的效果(看个人取舍)
body::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 0;
  height: 0;
  margin: auto;
  border-radius: 100%;
  background: transparent;
  display: block;
  box-shadow: 0 0 150px 100px rgba(255, 255, 255, 0.6),
    200px 0 200px 150px rgba(255, 255, 255, 0.6),
    -250px 0 300px 150px rgba(255, 255, 255, 0.6),
    550px 0 300px 200px rgba(255, 255, 255, 0.6),
    -550px 0 300px 200px rgba(255, 255, 255, 0.6);
}

3.设置内容主体部分的样式

h1 {
  // 鼠标样式从文字的工字型改成默认的鼠标样式
  cursor: default;
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  margin: auto;
  // 以上代码实现居中

  width: 100%;
  height: 100px;
  display: block;
  text-align: center;
}

h1 span {
  position: relative;
  // 注意定位方位top值为20px
  top: 20px;
  display: inline-block;
  font-size: 80px;
  color: #fff;

  // 文字的阴影样式
  text-shadow: 0 1px 0 #ccc, 0 2px 0 #ccc, 0 3px 0 #ccc, 0 4px 0 #ccc, 0 5px 0 #ccc, 0 6px 0 transparent, 0 7px 0 transparent, 0 8px 0 transparent, 0 9px 0 transparent, 0 10px 10px rgba(0, 0, 0, 0.4);

  // 动画(ease:慢速开始,然后变快,然后慢速结束的过渡效果;infinite无限循环;alternate动画结束可反向)
  animation: bounce 0.3s ease infinite alternate;
}

4.设置动画

@keyframes bounce {
  100% {
    // top值改20px,实现上移40px
    top: -20px;

    // 盒子阴影(主要是最后一层阴影把阴影在垂直方向的偏移量加大了40px)
    text-shadow: 0 1px 0 #ccc, 0 2px 0 #ccc, 0 3px 0 #ccc, 0 4px 0 #ccc, 0 5px 0 #ccc, 0 6px 0 #ccc, 0 7px 0 #ccc, 0 8px 0 #ccc, 0 9px 0 #ccc, 0 50px 25px rgba(0, 0, 0, 0.2);
  }
}

    来看看现在的效果
    可以看出来现在所有的字母都是一起上下起伏,还需要给他们分别加上延迟

5.添加延迟

h1 span:nth-child(2) {
  animation-delay: 0.1s;
}
h1 span:nth-child(3) {
  animation-delay: 0.2s;
}
h1 span:nth-child(4) {
  animation-delay: 0.3s;
}
h1 span:nth-child(5) {
  animation-delay: 0.4s;
}
h1 span:nth-child(6) {
  animation-delay: 0.5s;
}
h1 span:nth-child(7) {
  animation-delay: 0.6s;
}
h1 span:nth-child(8) {
  animation-delay: 0.7s;
}
h1 span:nth-child(9) {
  animation-delay: 0.8s;
}

现在就已经实现了最初我们看到的效果了

经验分享 程序员 微信小程序 职场和发展