ブログデザイン備忘録 ~ モーフィング
今回はCSSを用いた文字の変形/モーフィングの方法について紹介したい。
元のコードは以下に掲載されていて文字が7変化するモーフィングになっているが、今回は簡単のため2つの文字のモーフィングについて取り上げる。
CSSだけでモーフィングを実装できる!文字列を違う文字列に滑らかに変化させるCSSのテクニック | コリス
表示する文字はhtmkで親クラスmorphingの下にwordという2つの子クラスを設定する。
<div class="morphing"> <div class="word">Word</div> <div class="word">morphing</div> </div>
cssのアニメーションでは animation: word 4s infinite ease-in-out;
とすることでwordという名のアニメションが4秒間、無限回で開始と終了をゆっくりと動かすという設定になる。
ease-in-out
を利用することで、文字が滑らかに切り替わる効果を与える。
.morphing { position: relative; font-size: 60px; background-color: black; color: yellow; min-height: 100vh; filter: contrast(25) blur(1px); } .word { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); animation: word 4s infinite ease-in-out; }
次のポイントとしてはanimation-delay
を用いてそれぞれの文字のアニメーション開始タイミングをずらすことで交互に文字が表示されるようになる。
最後に@keyframes
で文字の表示/非表示をfilter,opacityを用いて指定する。
.word:nth-child(1) { animation-delay: -4s; } .word:nth-child(2) { animation-delay: -3s; } @keyframes word { 0%, 100% { filter: blur(0px); opacity: 1; } 50% { filter: blur(1em); opacity: 0; } }
以下上記コード実行例を示す。
See the Pen morphing_2 by ATATAT (@atatat) on CodePen.