CSSだけで作る視差スクロール(パララックス)効果の実装方法
CSSだけで視差スクロール(パララックス)効果を実現するには、background-attachment: fixed; を使用します。このプロパティを指定すると、背景画像がブラウザの表示ブラウザの表示領域(ビューポート)に固定され、ページをスクロールしても背景だけが動かなくなります。その結果、前景のコンテンツと背景との間に速度の違いが生まれ、奥行きのある視差効果を演出できます。
コード例
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1" />
<style>
body {
font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
height: 100vh;
margin: 0px;
padding: 0px;
}
.parallax {
background-image: url("https://i.picsum.photos/id/250/800/800.jpg");
height: 100%;
background-attachment: fixed;
background-position: center;
background-repeat: no-repeat;
background-size: cover;
}
.parallaxText {
font-size: 20px;
height: 100%;
}
</style>
</head>
<body>
<div class="parallax"></div>
<div class="parallaxText">
<h1>ランダムなテキスト</h1>
<h1>ランダムなテキスト</h1>
<p>
ここには自由に文章を入力できます。背景画像は固定されたままなので、
このテキスト部分だけがスクロールして動き、背景との間に視差が生まれます。
</p>
</div>
<div class="parallax"></div>
</body>
</html>
実行結果
上記のコードをブラウザで開くと、まず全画面に背景画像が表示されます。

少し下にスクロールすると、背景画像は固定されたままテキスト部分だけが流れていくため、以下のように視差スクロール効果を確認できます。

ポイント解説
- background-attachment: fixed; … 視差効果の核心となるプロパティ。背景画像をビューポートに固定します。
- background-size: cover; … 画像を領域全体に拡大表示し、余白が出ないようにします。
- height: 100%; … 各セクションを画面いっぱいの高さにすることで、背景とコンテンツの切り替わりを際立たせます。
なお、iOS版Safariなど一部のモバイルブラウザでは background-attachment: fixed が正しく機能しない場合があります。そのような環境では、JavaScriptや transform を組み合わせた代替手法を検討するとよいでしょう。
-
CSSで矢印を作成する方法!borderとrotateを組み合わせた4方向矢印の実装テクニック
CSSでは、画像やアイコンフォント、外部ライブラリに頼らなくても、border(境界線)とtransform: rotate()を組み合わせるだけで、上下左右どの方向の矢印でも簡単に作成できます。境界線でL字型の角を作り、それを回転させるのが基本的な考え方です。 サンプルコード <!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width, initial-scale=1" /> <style>
-
CSSだけで実現する視差スクロール(パララックス)効果の作り方
Webサイトに動きと奥行きを与える演出のひとつに「視差スクロール(パララックススクロール)」があります。背景画像と前景コンテンツのスクロール速度に差をつけることで、画面に立体感が生まれ、ユーザーを引き込む印象的なデザインになります。実は、JavaScriptを使わなくても、CSSのbackground-attachment: fixedを活用するだけで、簡単にパララックス効果を実現できます。このプロパティを指定すると、ページをスクロールしても背景画像が固定されたまま表示され、その上を前景のコンテンツが流れるように動くため、視差が生まれる仕組みです。パララックス効果の基本ポイントbackgrou