フェードで切り替わるカルーセルを作る方法
フェードで切り替わるカルーセルをHTML・CSS・JavaScriptで作る方法を紹介します。左右へスライドするのではなく、現在のスライドが徐々に消えながら次のスライドが表示されるため、落ち着いた印象のカルーセルを簡単に実装できます。トップページのメインビジュアルやキャンペーン告知、おすすめコンテンツの紹介など、さまざまな場面で利用しやすいデザインです。
このサンプルでは、フェードアニメーションによるスライド切り替えに加え、左右の矢印ボタンとドットナビゲーションを実装しています。ボタンやドットをクリックすると任意のスライドへ切り替えられ、現在表示中のスライドも分かりやすく表示されます。特別なライブラリは使用せず、HTML・CSS・JavaScriptだけで動作します。
カルーセルの文章やボタン、背景色は自由に変更できるため、企業サイトやサービス紹介ページ、ランディングページなどにもそのまま応用できます。フェードで自然に切り替わるカルーセルを作りたい方や、シンプルな実装方法を探している方におすすめのサンプルです。
免責事項 本コードの利用により発生した損害について、当サイトは一切の責任を負いません。
デモ
コードをコピーして使おう!
<!DOCTYPE html>
<html lang="ja">
<head>
<!-- 文字コード -->
<meta charset="UTF-8">
<!-- スマホ表示に対応 -->
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<!-- ページタイトル -->
<title>フェードで切り替わるカルーセル</title>
<!-- CSSファイルを読み込み -->
<link rel="stylesheet" href="style.css">
</head>
<body>
<!-- カルーセル全体 -->
<div class="fade-carousel_demo">
<!-- カルーセル表示エリア -->
<div class="fade-carousel_view">
<!-- スライド1 -->
<div class="fade-carousel_slide is-active">
<!-- テキストエリア -->
<div class="fade-carousel_content">
<!-- タイトル -->
<div class="fade-carousel_title">
新しいサービスを紹介
</div>
<!-- 説明文 -->
<p>
フェードアニメーションで自然に切り替わるカルーセルです。トップページのメインビジュアルにも利用できます。
</p>
<!-- ボタン -->
<a href="#" class="fade-carousel_btn">
詳しく見る
</a>
</div>
</div>
<!-- スライド2 -->
<div class="fade-carousel_slide">
<!-- テキストエリア -->
<div class="fade-carousel_content">
<!-- タイトル -->
<div class="fade-carousel_title">
おすすめ情報を表示
</div>
<!-- 説明文 -->
<p>
スライド移動ではなく、徐々に切り替わるため落ち着いた印象のデザインになります。
</p>
<!-- ボタン -->
<a href="#" class="fade-carousel_btn">
詳細を見る
</a>
</div>
</div>
<!-- スライド3 -->
<div class="fade-carousel_slide">
<!-- テキストエリア -->
<div class="fade-carousel_content">
<!-- タイトル -->
<div class="fade-carousel_title">
キャンペーンを告知
</div>
<!-- 説明文 -->
<p>
左右の矢印やドットナビから任意のスライドへ切り替えられます。
</p>
<!-- ボタン -->
<a href="#" class="fade-carousel_btn">
確認する
</a>
</div>
</div>
<!-- 前へボタン -->
<button class="fade-carousel_arrow fade-carousel_prev" type="button">
‹
</button>
<!-- 次へボタン -->
<button class="fade-carousel_arrow fade-carousel_next" type="button">
›
</button>
<!-- ドットナビゲーション -->
<div class="fade-carousel_dots">
<!-- 1枚目 -->
<button class="fade-carousel_dot is-active" type="button"></button>
<!-- 2枚目 -->
<button class="fade-carousel_dot" type="button"></button>
<!-- 3枚目 -->
<button class="fade-carousel_dot" type="button"></button>
</div>
</div>
</div>
<!-- JavaScriptファイルを読み込み -->
<script src="script.js"></script>
</body>
</html>
サンプル一式を取得する場合 HTML・CSSなどすべてのファイルが必要な場合は、「サンプル一式をダウンロード」をクリックしてください。
ファイル構成と設置方法
このサンプルはHTML・CSS・JavaScriptの3ファイルで構成されています。HTMLではカルーセルのレイアウトやスライド、矢印ボタン、ドットナビゲーションを配置し、CSSではフェードアニメーションやレイアウト、デザインを設定しています。JavaScriptでは前後のスライド切り替えやドットナビの操作、フェード中の連打防止などの処理を行います。
スライドは横へ移動するのではなく、重ねて配置した要素の表示・非表示を切り替えることで自然なフェードアニメーションを実現しています。トップページのメインビジュアルやお知らせ、キャンペーン紹介など、落ち着いた印象のカルーセルを簡単に作成できます。
sample/
├── index.html
├── style.css
└── script.js
各ファイルの役割
index.htmlはカルーセル全体を構成するファイルです。各スライドのタイトル、説明文、ボタンの文字、スライド数を変更できます。矢印ボタンやドットナビゲーションもこのファイルで管理します。
style.cssはカルーセル全体のデザインを設定するファイルです。背景色、文字色、カードデザイン、角丸、影、余白、フェードアニメーション、レスポンシブ表示などを変更できます。
script.jsはカルーセルの動作を制御するファイルです。前へ・次へボタン、ドットナビの切り替え、表示中スライドの管理、フェード中の連打防止を行います。
設置方法・使い方
sampleフォルダへindex.html、style.css、script.jsを配置します。3つのファイルを同じ階層へ保存したあと、sample/index.htmlをブラウザで開いてください。左右の矢印ボタンやドットナビゲーションをクリックすると、各スライドがフェードアニメーションで切り替わります。
カスタマイズできる内容
index.htmlではスライドのタイトル、説明文、ボタンの文字、リンク先、スライド数を変更できます。サービス紹介やキャンペーン、お知らせなど用途に合わせた内容へ簡単に変更できます。
style.cssではカルーセル全体の横幅、高さ、背景色、文字色、余白、角丸、影、ボタンデザイン、ドットナビの見た目、フェード時間などを変更できます。
script.jsではフェード時間に合わせた待機時間や連打防止時間、スライド切り替え処理などを調整できます。
数値調整
style.css
max-width:1000px;
カルーセル全体の最大横幅です。値を大きくすると横幅が広くなり、小さくするとコンパクトになります。
min-height:420px;
カルーセルの高さです。値を大きくすると縦方向へ広がり、小さくすると低く表示されます。
padding:56px;
スライド内側の余白です。値を大きくすると余白が広がり、小さくすると内容が端へ近付きます。
transition:opacity 1.2s ease;
フェード切り替え時間です。1.2秒かけて切り替わります。値を大きくするとゆっくり、小さくすると速く切り替わります。
margin-left:72px;
テキストと左矢印との間隔です。値を大きくすると余白が広がり、小さくすると矢印へ近付きます。
font-size:38px;
タイトル文字サイズです。値を大きくするとタイトルが強調され、小さくすると控えめになります。
width:160px;
ボタンの横幅です。値を大きくするとボタンが横長になり、小さくすると短くなります。
width:44px;
左右矢印ボタンの大きさです。値を大きくすると押しやすくなり、小さくするとコンパクトになります。
script.js
const fadeCarouselSpeed = 1200;
フェード切り替え時間です。1200は1.2秒を表します。CSSのtransition時間と同じ値にしてください。値を大きくするとゆっくり、小さくすると速く切り替わります。
レスポンシブ対応
このサンプルはレスポンシブ対応です。style.cssのmax-width:1000pxにより画面幅に合わせてカルーセル全体が縮小されます。また、600px以下では内側余白、タイトルサイズ、高さ、テキスト位置を調整しているため、スマートフォン・タブレット・PCでも見やすく利用できます。
コメント