CSSでアニメーション読み込みテキストを作成する


これは、もともと公開されたcodinhood.com
ロードアニメーションは、ユーザーが完了するためにいくつかのアクションを待っているときに視覚的なフィードバックを与えるための素晴らしい方法です.このチュートリアルでは、ロードアニメーションとして動作するように、波のようにテキストを上下にアニメーション化する方法を学びます.

HTMLとCSSのセットアップ


我々がグループとしてテキストをアニメーション化しているならば、我々は1つの要素ですべての手紙を置くことができました.しかし、このアニメーションは、各文字が個別にアニメーション化する必要がありますので、我々は独自の要素に各文字を分離する必要があります.
<div class="container">
  <div class="loading">
    <div class="loading__letter">L</div>
    <div class="loading__letter">o</div>
    <div class="loading__letter">a</div>
    <div class="loading__letter">d</div>
    <div class="loading__letter">i</div>
    <div class="loading__letter">n</div>
    <div class="loading__letter">g</div>
    <div class="loading__letter">.</div>
    <div class="loading__letter">.</div>
    <div class="loading__letter">.</div>
  </div>
</div>
The container クラスはページ上のテキストを中心にし、背景色を定義します.The loading クラス使用flex-direct: row 強いるloading_letter 行としてレンダリングする要素.
.container {
  height: 100vh;
  background: #773d8c;
  display: flex;
  justify-content: center;
  align-items: center;
}

.loading {
  display: flex;
  flex-direction: row;
}
最後に、テキストの基本的なスタイルを定義します.フォントAudiowideはから供給することができますGoogle Fonts .
@import url(https://fonts.googleapis.com/css?family=Audiowide);

.loading__letter {
  font-size: 88px;
  font-weight: normal;
  letter-spacing: 4px;
  text-transform: uppercase;
  font-family: "Audiowide";
  color: #fec468;
}

テキストアニメーション


The @keyframe アニメーションはtranslateY 関数を変換する各文字を移動する40 ピクセルをしてから0 ピクセル.我々は、アニメーションのピークを定義することができます50% , またはアニメーションを通して半減するが、少し前にピークを定義する40% ) そして、少し前にアニメーションを仕上げます80% ) 各反復の間に小さな休止があることを意味します.
@keyframes bounce {
  0% {
    transform: translateY(0px);
  }
  40% {
    transform: translateY(-40px);
  }
  80%,
  100% {
    transform: translateY(0px);
  }
}
更新.loading_letter クラスでanimation-name バウンスするanimation-duration 設定する2s , とanimation-iteration-count to infinite .
.loading__letter {
  font-size: 88px;
  font-weight: normal;
  letter-spacing: 4px;
  text-transform: uppercase;
  animation-name: bounce;
  animation-duration: 2s;
  animation-iteration-count: infinite;
}
我々は正確な同じタイミングで、各文字に正確な同じアニメーションを追加しているので、文字はグループとしてアニメーション化されます:

波アニメーションを作成するには、文字を1つずつ後、または連続してアニメーション化する必要があります.私たちは増加しているanimation-delay 等しい増加の各々の手紙のために.最初の文字がすぐに開始され、2番目の文字が遅延されます0.1 秒、3番目の文字0.2 秒など.最後に、CSSの各文字をnth-child(num) 位置を渡すことによる擬似クラス.
.loading__letter:nth-child(2) {
  animation-delay: 0.1s;
}
.loading__letter:nth-child(3) {
  animation-delay: 0.2s;
}
.loading__letter:nth-child(4) {
  animation-delay: 0.3s;
}
.loading__letter:nth-child(5) {
  animation-delay: 0.4s;
}
.loading__letter:nth-child(6) {
  animation-delay: 0.5s;
}
.loading__letter:nth-child(7) {
  animation-delay: 0.6s;
}
.loading__letter:nth-child(8) {
  animation-delay: 0.8s;
}
.loading__letter:nth-child(9) {
  animation-delay: 1s;
}
.loading__letter:nth-child(10) {
  animation-delay: 1.2s;
}

別の遅延の増加、または別のを試して遊んでみてくださいanimation-timing-function ライクease-in-out とどのようにアニメーションに影響を参照してください.