GSAP ScrollTrigger.jsを使ってみる
参考記事
・【2021年最新】GSAPの「ScrollTrigger」を使って爆速でスクロールアニメを実装する
・ScrillTrigger.jsの実装例 | Green Sock公式
・指定できるCSS | Green Sock公式
やりたいこと
トリガー(
.js-trigger
)の要素が指定の位置に来たら、その親要素(.js-main
)の背景色と文字色を変化させ、.js-trigger
を過ぎたら元に戻したいindex.html<main class="js-main"><!--アニメーションする要素--> <div class="js-trigger"><!--トリガーの要素--> </div> </main>
実装方法
今回はクラスの付け外しで実装します。
また別の方法として、GSAPを使ってJSのみでアニメーションを指定することもできます。(CSSファイルに記述しなくてもJSのみでアニメーションを指定できてしまう)
【参考記事】
・指定できるCSS | Green Sock公式指定できるアニメーション一部抜粋↓
main.jsgsap.to('.js-demo-section', { autoAlpha: 1, //opacity: 1;とvisibility:visible;がつく x: 100, //右に100px移動。-100で左に100px移動。 y: 200, //下に200px以上。-200で上に200px移動。 scale:2, //2倍にする。scaleXとscaleYも指摘できる rotation: -30, //回転。rotationXとrotationYも指定できる skewX: "30deg", //変形 skewYも使える。skewは使えない。 delay: 2, //2秒後にアニメーションさせる duration: 5, //5秒後かけてアニメーションさせる backgroundColor: "red", //背景色を赤にする … });
また、イージング系の指定が豊富に用意されていて、
以下のページで好きなスピードでシュミレーションできます。
GSAP本体とScrollTrigger.jsを読み込む
今回はcdnで読み込みました
<script src="//cdn.jsdelivr.net/npm/[email protected]/dist/gsap.min.js"></script> <script src="//cdn.jsdelivr.net/npm/[email protected]/dist/ScrollTrigger.min.js"></script>
実装してみる
CSS
親要素(
.js-main
)のデフォルトのスタイルとis-bgWhite
が付与された場合のスタイルを指定※レイアウトに関する記述は省略します
scss;style.scss.js-main { background-color: #000; color: #fff; transition: background 0.6s ease-in-out; } .js-main { &.is-bgWhite { background-color: #fff; color: #000; } }
JavaScript
triggerに指定された要素が、startの位置にきたときに、targetsで指定した要素に、
is-bgWhite
のクラス名を追加して、endの位置が過ぎるとis-bgWhite
のクラス名を削除します。main.jsScrollTrigger.create({ trigger: '.js-trigger', //トリガーとなる要素 start: 'top center', end: '75% top', toggleClass: { targets: ".js-main",//ターゲットの要素 className: "is-bgWhite" //付け外しするクラス }, });
クラスを追加した後削除したくない場合はonce: true
を追加するだけです。main.jsScrollTrigger.create({ trigger: '.js-trigger', //トリガーとなる要素 start: 'top center', end: '75% top', toggleClass: { targets: ".js-main",//ターゲットの要素 className: "is-bgWhite" //付け外しするクラス }, once: true,//一度のみアニメーション });
Author And Source
この問題について(GSAP ScrollTrigger.jsを使ってみる), 我々は、より多くの情報をここで見つけました https://qiita.com/Coco__syu/items/95429e7a74d05c35c33b著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .