Web制作 × AI

【jQuery】スクロール時に背景画像をスクロールの逆方向へ動かすパララックスアニメーションの実装方法(background-position-yプロパティを使用)

コーディングテクニックの実装内容

今回はWeb制作におけるパララックス・スクロールエフェクトに関する内容です。スクロール時に背景画像をスクロールの逆方向へ時間差で動かすパララックスアニメーションを実装する方法(background-position-yプロパティをJSで制御) を紹介します。

コーディングテクニックの使いどころ

jQueryのプラグインを使用せず、手軽にパララックスを実装したい時に便利です。慣性スクロールで滑らかなスクロールを実現できます。

実装難易度・必要なスキル

コーディングとjQueryの基礎的な知識があれば実務未経験のコーダー、マークアップエンジニア、Webデザイナー、エンジニア、副業の初心者など誰でも実装可能です。

実装所要時間は10分程度

CSS,JavaScriptの記述内容

body {
  height: 1000px;
}
.block {
  position: relative;
  width: 100%;
  height: 1500px;
}

.bg {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  z-index: 0;
  background: url(/img/h.jpg) no-repeat center center;
  background-size: cover;
}
@media screen and (max-width:640px){
  .block {
    height: 500px;
  }
  .bg {
    background-size: contain;
  }
}
var scrollPos = $(window).scrollTop();
var scrollPrevPos = 0;
var bgPos = 0;

$(window).on("scroll", function() {
  scrollPos = $(window).scrollTop();
  var sectionLablesPos = $(".block").offset().top;
  var sectionLabelsHeight = $(".block").innerHeight();
  var delta = scrollPos - scrollPrevPos;
  if (scrollPos + window.innerHeight > sectionLablesPos && scrollPos < sectionLablesPos + sectionLabelsHeight) {
    console.log(delta);
    if (delta > 0) {
      bgPos = bgPos - 7;
    } else {
      bgPos = bgPos + 7;
    }
  }
    console.log(bgPos);
    $(".bg").stop(true, false).animate({
      "background-position-y": bgPos + "px",
    },1000);
  scrollPrevPos = scrollPos;
});

実装のポイント

現在制作中

PR
[商品価格に関しましては、リンクが作成された時点と現時点で情報が変更されている場合がございます。]

ChatGPT 120%活用術 [ ChatGPTビジネス研究会 ]
価格:1,390円(税込、送料無料) (2023/5/23時点)


この記事を書いた人(著者情報)

片山

カタチップ編集長。昭和生まれの30代でWeb業界歴は10年以上。現在はカタチップを運用しつつ事業会社でWEBメディアサイトのWebディレクター兼マークアップエンジニアを担当。最近はSNSの運用にも業務範囲を拡大中です。

著者画像

スポンサーリンク