【GSAP】スクロール位置に連動して画像を広げる方法【コピペOK】

今回はJavaScriptのアニメーションライブラリ、『GSAP』を用いてスクロール位置に連動して画像を広げる方法をご紹介いたします。

非常にシンプルにソースコードが収まりました。ぜひ最後までご覧いただけると嬉しいです。

【Swiper】真ん中に2つのカード+両端が見切れたスライダーの作り方【デモあり】

1.実装イメージ

実装イメージは以下の通りです。

See the Pen GSAP prallax-img-extend by りょーすけ (@s_ryosuke_1242) on CodePen.

コピペしてすぐに実務で実装できるようにしております。
注意点としては予め、CDNでプラグインをダウンロードしておきましょう。

CDNはコチラ

必要なファイルは『gsap.min.js』『ScrollTrigger.min.js』の2つです

2.HTML

HTMLはコチラの通りになっています。比較的シンプルですね

<section class="spacer"></section>
  <section class="parallax-area">
  <div class="img-wrapper">
    <img src="https://ryo-sukeblog.net/wp-content/uploads/2022/05/mv03.jpg" alt="" srcset="">
  </div>
</section>

3.CSS

次にCSSです。

*{
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}
html{
    width: 100%;
}
body{
    width: 100%;
}
main{
    width: 100%;
}
.spacer{
    width: 100%;
    height: 95vh;
}
.parallax-area{
    width: 100%;
}
.img-wrapper{
    width: 100%;
    height: 90vh;
    position: relative;
    overflow: hidden;
}
.img-wrapper img{
    position: absolute;
    left: 0;
    bottom: 0;
}

4.JavaScript

最後にJavaScriptです

const tl = gsap.timeline();

tl
.from('.img-wrapper',{
    width:'60%',
    scrollTrigger:{
        trigger:'.img-wrapper',
        start:'top bottom',
        end:'top top',
        toggleActions:'play none none reverse',
        scrub:2,
    }    
})
.to('.img-wrapper img',{
    y:'15%',
    scrollTrigger:{
        trigger:'.img-wrapper',
        start:'top top',
        toggleActions:'play none none reverse',
        scrub:2,
    }
},'<')