文字をスーッと出したい。キーフレームアニメーションでやってみる。
前回の続き(笑)
文字をスーーーッと出したい。
文字をスーッと出したい。これはCSSのキーフレームアニメーション使うパターン。
↑見逃した人は、ブラウザの再読み込みをしてみてください。
文字の上に、カバー用のdivを乗せてそれを動かしている。背景と同じ色だとわからないので、色を付けてみるよ。
文字をスーーーッと出したい。
参考にコードを掲載しておくね。
まずはHTML。
.moji-kakomi の中に
p(文字)
.cover(白いカバー)を重ねて配置します。
見た目では、最初に白いカバーが上にあり、動いて消えることで文字が出てくる、という演出になります。
▼HTML
<div class="moji-kakomi">
<p>文字をスーーーッと出したい。<p>
<div class="cover"></div>
</div>
▼文字全体を囲む親ボックス( クラス moji-kakomi )に対してのCSS
.moji-kakomi {
position: relative; /* ポジション使うために親とする */
overflow: hidden; /* はみ出した要素は見えなくする */
}
▼文字部分(クラス moji-kakomi の中の p )に対してのCSS
.moji-kakomi p {
font-size: 3rem; /* 文字サイズ */
color: #000; /* 文字色 */
margin: 0; /* 要素外余白:0; */
opacity: 0; /* 透明 ← 後でフェードインさせるために最初は透明 */
transform: translateY(20px); /* Y軸(縦方向)に20ピクセル動かす ← 後で元の位置に */
animation-name: fadeUp; /* 適用させるアニメの名前 */
animation-duration: 1.5s; /* アニメの所要時間 */
animation-timing-function: ease-out; /* アニメの変化の仕方 */
animation-fill-mode: forwards; /* アニメが終わった後もその状態を保つ */
}
▼カバー部分(クラス cover )に対してのCSS
.cover {
position: absolute; /* 親要素の中で絶対配置 */
top: 0; /* 上からの位置 */
left: 0; /* 左からの位置 */
width: 100%; /* 横幅 h2をぴったり覆う横幅 */
height: 100%; /* 高さ h2をぴったり覆う高さ */
background-color: #fff; /* 背景色 白い長方形になる */
animation-name: coverSlide; /* 適用させるアニメの名前 */
animation-duration: 1.5s; /* アニメの所要時間 */
animation-timing-function: ease-out; /* アニメの変化の仕方 */
animation-fill-mode: forwards; /* アニメが終わった後もその状態を保つ */
animation-delay: 0.3s; /* アニメ開始までの待機時間 0.3秒だけ遅れて動き出す */
}
▼アニメ「fadeUp」h2 のフェードインとスライドアップ CSS ふわっと上に浮かびながら出てくる演出
@keyframes fadeUp {
to {
opacity: 1; /* 透明 0 から 1 完全に見える */
transform: translateY(0); /* 20px下の位置 から 元の位置 */
}
}
▼アニメ「coverSlide」カバーがスライドする動き CSS 白い板がスーッと右に抜けて、h2が現れる演出
@keyframes coverSlide {
0% {
transform: translateX(0); /* 最初は左端(全体を覆っている)*/
}
100% {
transform: translateX(100%); /* 右にスライドして画面外へ出る */
}
}