【Next.js】スクロールでセクションを出す方法を解説

公開日: 2026年9月12日 · 読了目安 9 分

Next.js でスクロール連動の入場(scroll reveal)を付ける方法。一度だけ出す、ピン留めとの違い、完成セクションの流用。

先に結論:全セクションを reveal しない

画面に入ったときに薄く上がる演出は、2〜3セクションまでです。全部に付けると、ページが遅く、テンポが単調になります。

スクロール量に常時連動するパララックス、ピン留めギャラリー、ただの入場は別物です。ギャラリーは https://design-layer.com/articles/nextjs-scroll-gallery-guide です。

作り方は3つです。CSS と Intersection Observer。Framer Motion の whileInView。完成セクションに同梱された動きを使う。

重いページになる3つの理由

1つ目は、一度出した要素を、スクロールのたびに戻すことです。一度だけにしてください。

2つ目は、大きな blur をスクロールに載せることです。

3つ目は、page 全体をクライアントにすることです。動かすブロックだけ切り出します。Framer Motion の導入は https://design-layer.com/articles/nextjs-framer-motion-guide です。

方法1:一度だけクラスを足す

Intersection Observer で is-visible を付け、CSS の transform と opacity を変えます。依存は増えません。

方法2:whileInView

viewport={{ once: true }} を忘れない。amount は 0.3 前後が、早すぎず遅すぎません。

方法3:完成しているスクロール演出を載せる

ピン、切り替わり、パララックスが組み合わさった塊は、whileInView の延長では半日かかります。

DesignLayer でライブスクロールしてから選んでください。https://design-layer.com/components

無料コピーは1日3回です。強い動きはヒーローと1セクションに留めます。

公開前チェックリスト

1. reduced-motion で最初から見えているか。2. 情報が動きのあとにしか出ない箇所が無いか。3. モバイルで遅延しすぎないか。

【Next.js】スクロールでセクションを出す方法を解説 | DesignLayer