サイトアイコン WEBデザインMATOME

JavaScriptとCSSで画像を順に表示し、上下に動かすアニメーションの実装

この記事では、JavaScriptとCSSを使用して、画像が順番にゆっくり表示されるアニメーションを実現し、
さらにCSSで画像が上下にゆっくり動くアニメーションを追加する方法を解説します。

アニメーションは、JavaScriptのsetTimeoutを使用して、画像を時間差で表示させるとともに、
CSSで上下に動かすアニメーション効果を設定します。
これにより、視覚的にリッチで動きのあるウェブページを作成することができます。

それでは、具体的な実装を見ていきましょう。

HTML構造

まずは、アニメーションを適用するためのHTML構造を用意します。
今回は、2つの画像を順に表示し、そのうちの1つの画像が上下にゆっくり動くようにします。

<div class="mv">
<img id="mvicon" src="img/top/mvicon.svg" alt="">
<p class="logo">
<img id="mvlogo" src="img/top/mvlogo.svg" alt="">
</p>
</div>

上記のコードでは、imgタグで2つの画像を読み込みます。
それぞれの画像にID属性を付けておき、JavaScriptで操作できるようにします。

CSSスタイル

次に、CSSでアニメーションの基本的な設定を行います。
最初に画像を非表示にし、表示されるときにフェードインするようにします。
また、2つ目の画像には上下に動くアニメーションを追加します。

.mv img {
opacity: 0;
transition: opacity 1.5s ease-in-out;
}

#mvlogo {
position: relative;
animation: moveUpDown 3s ease-in-out infinite;
}

/* 上下にゆっくり動くアニメーション */
@keyframes moveUpDown {
0% {
top: 0;
}
50% {
top: 10px; /* 上下に動く距離を調整 */
}
100% {
top: 0;
}
}

CSSのポイント

JavaScriptで順番に画像を表示

次に、JavaScriptで画像が順番に表示されるように処理を行います。
setTimeoutを使って、2つの画像を時間差で表示します。

document.addEventListener('DOMContentLoaded', function() {
const mvicon = document.getElementById('mvicon');
const mvlogo = document.getElementById('mvlogo');

// 最初の画像をゆっくり表示
setTimeout(function() {
mvicon.style.opacity = 1;
}, 500); // 0.5秒後に表示

// 2つ目の画像を少し遅れて表示
setTimeout(function() {
mvlogo.style.opacity = 1;
}, 2000); // 2秒後に表示
});

JavaScriptのポイント


説明

CSS

opacityプロパティを使って、画像を0(透明)から1(完全に表示)に変化させ、
画像がゆっくりとフェードインする効果を持たせています。
さらに、@keyframesを使って、2つ目の画像が上下にゆっくりと動くアニメーションを設定しました。

JavaScript

setTimeoutを使用して、画像が順番に表示されるようにしています。


まとめ

今回の実装で、JavaScriptとCSSを使って画像を順番に表示し、
さらにアニメーション効果を加える方法を学びました。
CSSのtransition@keyframesをうまく活用することで、
シンプルで効果的なアニメーションを実現できます。

このような手法を活用して、ウェブサイトのビジュアルをより動的にし、
ユーザーにとって魅力的な体験を提供することができます。

モバイルバージョンを終了