今回は、「jQueryを使って背景画像をパララックスさせる方法」について紹介します。
デザインの幅が広がるので、是非試してみてください。
パララックスとは?
パララックスは、英語で「視差」という意味になります。
視差とは、サイトを構成するパーツごとのスクロールスピードをずらすスクロール効果のことを言います。
パララックスを使うことで、いつもと違う印象をユーザーに与えることができますよ。
【jQuery】背景画像をパララックスさせる方法
完成形はこちら。
1つ目の背景画像をパララックスなしにして、2つ目の背景画像をパララックスありにしました。
2つ目のパララックスありの背景画像は、テキストと微妙にスクロールのズレがあることが分かると思います。
これがパララックス、つまり視差効果になります。
準備
まずはjQueryのCDNをbodyの閉じタグの直前に書きましょう。
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
HTML
<!-- パララックスあり -->
<div class="first-v2" id="parallax-01">
    <p>パララックスあり<br>パララックスあり</p>
</div>
背景画像をパララックスさせたい部分に「id=”parallax-01″」を指定します。
id名はなんでもOKですが、分かりやすい名前にすると後でコードを理解しやすいのでおすすめですよ。
CSS
// パララックスあり
.first-v2 {
    position: relative;
    background: url(../image/1.jpeg);
    background-size: cover;
    height: 0%;
    padding-top: unquote("min(100vh,75%)");
    p {
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        color: #fff;
        line-height: 1.5;
        font-size: unquote('max(3vw, 16px)');
    }
}
JavaScript
// first-vの背景画像のパララックス
$(function () {
    var target1 = $("#parallax-01");
    var targetPosOT1 = target1.offset().top;
    var targetFactor = 0.5;
    var windowH = $(window).height();
    var scrollYStart1 = targetPosOT1 - windowH;
    $(window).on('scroll', function () {
        var scrollY = $(this).scrollTop();
        if (scrollY > scrollYStart1) {
            target1.css('background-position-y', (scrollY - targetPosOT1) * targetFactor + 'px');
        } 
    });
});
まとめ
以上が、jQueryを使って背景画像をパララックスさせる方法でした。



