読者GsapのscrollTriggerをマスターして アニメーションの幅を広げようは、最初にどこを理解するとよいですか?
木村対象要素を取得する処理、動作を始める条件、見た目を変える処理の三つに分けると、コードの流れを追いやすくなります。
読者実際に試すときは、手順だけでなく確認方法も知っておいた方がよいでしょうか?
木村はい。この記事では、作業の目的から実装後の確認までを順番に整理します。自分の環境と照らし合わせながら読み進めてください。
scrollTriggerの設定
scrollTriggerの設定では、GsapのscrollTriggerをマスターして アニメーションの幅を広げようを理解・実装するために必要な考え方と、作業時に確認したい点を整理します。最初に役割を把握してから、記事内の手順へ進みましょう。
Gsapの読み込み
<head>
// ここに基本的なタグを挿入
// Gsapの読み込み ※投稿の時点ではバージョン3.11.5
<script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.11.5/gsap.min.js"></script>
// scrollTruggerの読み込み
<script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.11.5/ScrollTrigger.min.js"></script>
// 任意のjsファイルを読み込む
<script defer src="js/script.js">
</head>コードを記述
こちらからファイルをダウロードすることも可能です。 HTML<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
<link
rel="stylesheet"
href="https://cdn.jsdelivr.net/npm/destyle.css@1.0.15/destyle.css"
/>
<link rel="stylesheet" href="dist/css/index.min.css" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.11.5/gsap.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.11.5/ScrollTrigger.min.js"></script>
<script defer src="js/script.js"></script>
</head>
<body>
<header>ヘッダー</header>
<div class="hero">メインビジュアル</div>
<!-- /.hero -->
<main>
<div class="wrapper flex-column">
<section>
<div class="box1">box1</div>
<!-- /.box1 -->
</section>
<section>
<div class="box2">box2</div>
<!-- /.box2 -->
</section>
<section>
<div class="box3">box3</div>
<!-- /.box3 -->
</section>
</div>
<!-- /.wrapper -->
</main>
</body>
</html>*,
*::before,
*::after {
box-sizing: border-box;
}
body {
color: $cWhite;
font-size: 2rem;
letter-spacing: 0.02em;
}
img {
max-width: 100%;
vertical-align: bottom;
}
main {
padding: 100px 0;
}
.wrap {
margin: 0 auto;
width: 90%;
}
header {
display: flex;
height: 150px;
justify-content: center;
align-items: center;
background-color: $primary_blue-200;
}
.hero {
display: flex;
height: 500px;
justify-content: center;
align-items: center;
background-color: $cBlack;
}
.box1,
.box2,
.box3 {
display: flex;
height: 300px;
justify-content: center;
align-items: center;
background-color: $cGay;
}
section {
width: 100%;
}
.wrapper {
display: flex;
flex-direction: column;
width: 80%;
margin: 0 auto;
align-items: center;
gap: 50px;
}// ここにアニメーションさせたい要素を記述
gsap.from(".box1", 1, {
opacity: 0,
y: 20,
// scrollTriggerの記述
scrollTrigger: {
// スクロールを開始する要素を記述
trigger: ".hero",
// アニメーションの開始を微調整
start: "bottom center",
// 視覚的に調整できるオプション
markers: true,
},
});
gsap.from(".box2", 1, {
opacity: 0,
y: 20,
scrollTrigger: {
trigger: ".box1",
start: "bottom center",
markers: true,
},
});
gsap.from(".box3", 1, {
opacity: 0,
y: 20,
scrollTrigger: {
trigger: ".box2",
start: "bottom center",
markers: true,
},
});サイトを表示
※緑色のscroller-startとstartの位置に注目して動画を閲覧ください。赤色のendのマーカーは現時点意識する必要はありません。ポイント解説
ポイント解説では、GsapのscrollTriggerをマスターして アニメーションの幅を広げようを理解・実装するために必要な考え方と、作業時に確認したい点を整理します。最初に役割を把握してから、記事内の手順へ進みましょう。
trigger:box1の要素に対して、アニメーションを開始する要素を一つ上の.hero(メインビジュアル)に設定しています。 start:重要なのは次の指定です:“bottom center”という2つの設定です。”bottom”は緑のマーカーstartを指定し要素の位置を指定します。”center”ブラウザの開始位置を示し中央に配置しています。この部分は少し複雑ですが、値を変えて試してみてください。値を%で指定することも可能です。ポイント解説で押さえたいポイント
ポイント解説は、コードや設定だけを切り離して覚えるより、何を変えるための処理なのかを確認してから試すと理解しやすくなります。変更前の状態を控え、作業を一つずつ反映すると、問題が起きた場所も特定しやすくなります。
ポイント解説の確認方法
ブラウザーのコンソールにエラーがないかを確認し、クリックやスクロールを繰り返してもイベントが重複しないかを試します。スマートフォン幅とキーボード操作も確認してください。
まとめ
- scrollTriggerを理解すれば、アニメーションの幅が広がる
- 視覚的にアニメーションの設定ができる
- 簡単な記述で、複雑なアニメーションが実現できる
- 今まで覚えた技術を活かすことができる

MEMBER COMMENTS
コメント(0件)