CSSで左へ跳ね出す「bounceOutLeft」アニメーション効果を実装する方法
CSSのbounceOutLeftは、要素が一度右側に小さく跳ね返った後、画面の左側へ飛び出しながらフェードアウトしていくアニメーション効果です。要素を退場させる際の演出としてよく使われるテクニックです。以下のコードを実行して、実際の動きを確認してみましょう。
アニメーションの仕組み
この効果はCSSの@keyframesルールを使って実装します。各進行度における要素の動きは以下の通りです。
- 0%: 要素は元の位置(translateX(0))からスタートします。
- 20%: 要素が少し右へ移動し(translateX(20px))、不透明度は1のまま維持されます。これが「跳ね返り」の演出部分です。
- 100%: 要素が画面左の遠方へ移動し(translateX(-2000px))、同時に不透明度が0になって完全に見えなくなります。
実装コード例
以下のコードをHTMLファイルとして保存し、ブラウザで開いてください。ページ読み込み時にアニメーションが再生され、「Reload page」ボタンをクリックすると再読み込みされて何度でも確認できます。
<!DOCTYPE html>
<html>
<head>
<style>
.animated {
background-image: url(/css/images/logo.png);
background-repeat: no-repeat;
background-position: left top;
padding-top: 95px;
margin-bottom: 60px;
-webkit-animation-duration: 10s;
animation-duration: 10s;
-webkit-animation-fill-mode: both;
animation-fill-mode: both;
}
@-webkit-keyframes bounceOutLeft {
0% {
-webkit-transform: translateX(0);
}
20% {
opacity: 1;
-webkit-transform: translateX(20px);
}
100% {
opacity: 0;
-webkit-transform: translateX(-2000px);
}
}
@keyframes bounceOutLeft {
0% {
transform: translateX(0);
}
20% {
opacity: 1;
transform: translateX(20px);
}
100% {
opacity: 0;
transform: translateX(-2000px);
}
}
.bounceOutLeft {
-webkit-animation-name: bounceOutLeft;
animation-name: bounceOutLeft;
}
</style>
</head>
<body>
<div id="animated-example" class="animated bounceOutLeft"></div>
<button onclick="myFunction()">Reload page</button>
<script>
function myFunction() {
location.reload();
}
</script>
</body>
</html>
コードのポイント
- ベンダープレフィックス(-webkit-): 古いSafariやChromeなどWebKit系ブラウザ向けに、プレフィックス付きの記述を併記しています。現在のモダンブラウザでは標準の
animationプロパティだけで動作します。 - animation-fill-mode: both: アニメーションの開始前と終了後のスタイル状態を保持するための設定です。終了後に要素が元の位置に戻ってしまうのを防ぎます。
- animation-duration: 10s: アニメーション全体の所要時間を10秒に設定しています。実用時は1〜2秒程度に短縮すると、より自然で軽快な動きになります。
-
CSSで左上方向への回転アニメーション(rotateInUpLeft)を作成する方法
CSSで「左上を基準に回転する」アニメーション効果(rotateInUpLeft)を作成するには、@keyframesを使って回転の動きを定義し、それを要素に適用します。以下のコードをブラウザで実行すると、実際のアニメーションを確認できます。サンプルコード<!DOCTYPE html> <html> <head> <style> .animated { &n
-
CSSで左上方向へ回転して消えるアニメーション(rotateOutUpLeft)を作る方法
CSSのrotateOutUpLeftは、要素が左下を軸として反時計回りに回転しながら画面外へ消えていくアニメーション効果です。@keyframesで回転角度と不透明度(opacity)の変化を定義し、animation-nameを使って対象の要素に適用します。 実装例 以下のコードでは、ロゴ画像が10秒かけて左下を基点に-90度回転しながらフェードアウトしていきます。「Reload page」ボタンをクリックするとページが再読み込みされ、アニメーションを何度でも確認できます。 <html> <head> <style> .animated { bac