あなたのキモチ つなげるカタチ

TOP > jQuery > 【jQuery】スクロール時にスクロールの逆方向へ背景画像をアニメーションさせるテクニック(background-position-y)/Scroll animate background image position

【jQuery】スクロール時にスクロールの逆方向へ背景画像をアニメーションさせるテクニック(background-position-y)/Scroll animate background image position

スポンサーリンク

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

スクロール時にスクロールの逆方向へ背景画像を動かすテクニック(background-position-y)を紹介します。

実装所要時間: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;
});

実装のポイント

現在制作中

おすすめ記事

スポンサーリンク