【Next.js】画像カルーセルの作り方を解説
公開日: 2026年9月12日 · 読了目安 9 分
Next.js で商品や作品の画像カルーセルを組む方法。自前・Embla・完成ギャラリーの使い分け。自動再生とアクセシビリティの注意。
先に結論:枚数が少ないならカルーセルにしない
3枚までならグリッドの方が、全部見えます。カルーセルは、4枚以上を同じ枠に収めたいときです。スクロールで作品が切り替わるギャラリーとは別物です。ギャラリーは https://design-layer.com/articles/nextjs-scroll-gallery-guide です。
作り方は3つです。snap 付きの横スクロール。Embla などのライブラリ。完成しているカルーセルを載せる。
自動再生は、停止手段が先です。商品写真なら、ユーザーが送る方が売れます。
使いにくいカルーセルになる3つの理由
1つ目は、次へボタンが写真に埋もれることです。コントラストを確保します。
2つ目は、タッチスワイプが効かないことです。モバイルでは必須です。
3つ目は、画像の高さがバラバラなことです。枠の高さを固定します。
方法1:CSS の snap
flex overflow-x-auto snap-x snap-mandatory で足ります。依存は増えません。ドットは、今の枚数を aria-current で示します。
方法2:Embla や Swiper
ループ、ドラッグの慣性、サムネ連動が要るならライブラリです。バンドルとアクセシビリティを確認してください。
Next.js では動的 import し、カルーセルだけクライアントにします。
方法3:完成しているギャラリー/カルーセルを載せる
ピン留めしながら切り替わる作品列は、通常のカルーセルでは再現できません。まずライブで動きを見て、種類を決めてください。
DesignLayer のカタログは閲覧無料です。https://design-layer.com/components
無料コピーは1日3回です。
公開前チェックリスト
1. 前へ次へがキーボードで使えるか。2. 画像に意味のある alt があるか。3. 自動再生を止められるか。4. LCP の1枚目が遅延読み込みされていないか。