纯css文字跳动效果

4,620 阅读1分钟

先看效果

ezgif.com-video-to-gif.gif

我正在参与掘金新人创作活动,一起开启写作之路。

实现方法-主要代码

index.html

<div class="bounce">
	<span class="letter"></span>
	<span class="letter"></span>
	<span class="letter"></span>
	<span class="letter">-</span>
	<span class="letter">2</span>
	<span class="letter">0</span>
        <span class="letter">2</span>
        <span class="letter">1</span>
        <span class="letter">1</span>
        <span class="letter">2</span>
        <span class="letter">0</span>
        <span class="letter">2</span>
</div>

index.css

html,
body {
  width: 100%;
  height: 100%;
  margin: 0;
  background: #2d303a;
  overflow: hidden;
}

.bounce {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
	color: white;
  height: 100%;
  font: normal bold 6rem "Product Sans", sans-serif;
  white-space: nowrap;
}

.letter {
  animation: bounce 0.75s cubic-bezier(0.05, 0, 0.2, 1) infinite alternate;
  display: inline-block;
  transform: translate3d(0, 0, 0);
  margin-top: 0.5em;
  text-shadow: rgba(255, 255, 255, 0.4) 0 0 0.05em;
  font: normal 500 6rem 'Varela Round', sans-serif;
}
.letter:nth-child(1) {
  animation-delay: 0s;
}
.letter:nth-child(2) {
  animation-delay: 0.0333333333s;
}
.letter:nth-child(3) {
  animation-delay: 0.1333333333s;
}
.letter:nth-child(4) {
  animation-delay: 0.2333333333s;
}
.letter:nth-child(5) {
  animation-delay: 0.3333333333s;
}
.letter:nth-child(6) {
  animation-delay: 0.4333333333s;
}
.letter:nth-child(7) {
  animation-delay: 0.5333333333s;
}
.letter:nth-child(8) {
  animation-delay: 0.6333333333s;
}
.letter:nth-child(9) {
  animation-delay: 0.7333333333s;
}
.letter:nth-child(10) {
  animation-delay: 0.8333333333s;
}
.letter:nth-child(11) {
  animation-delay: 0.9333333333s;
}

@keyframes bounce {
  0% {
    transform: translate3d(0, 0, 0);
    text-shadow: rgba(255, 255, 255, 0.4) 0 0 0.05em;
  }
  100% {
    transform: translate3d(0, -1em, 0);
    text-shadow: rgba(255, 255, 255, 0.4) 0 1em 0.35em;
  }
}