バウンススクロールに固定背景を表示しない

main_img

MacのChromeでトラックパッドを使って思いっきり下に引っ張ると、領域外が見えてしまいます。そして、トラックパッドから手を離すと元に戻ります。これを「バウンススクロール」と言います。(http://ithat.me/2016/02/15/css-mac-chrome-bounce-scroll-cancel より)

今回、コンテンツの中身に背景を固定していた箇所があり、スマートフォンで見た際に固定された背景がバウンズスクロールした際にちらっと見えてしまう
ということで、「背景画像を固定している場合でもバウンズスクロール した際に背景画像を消す方法」を実装しました。

ヘッダーより上の固定背景を消す方法

※「〜以上スクロールした際に、背景画像を固定している部分を表示させる」という仕様です。

【CSS】

.scAbout::before {
  background: url("画像")no-repeat top center/cover;
  display: block;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  content: "";
  z-index: -1;
}

【JavaScript】

$(window).on('load scroll', function(){
  if ($(window).scrollTop() > 100) {
    $('.scAbout').css({'opacity':'1'});
   } else {
    $('.scAbout').css({'opacity':'0'});
   }
});

フッターより上の固定背景を消す方法

JavaScript : ページの最下部に来た時にイベントを起こす
こちらを参考にしました。

※フッターとの距離が近い場所に固定背景を貼り付けているクラスがあるので、ヘッダーの方法とは別の方法です。

【JavaScript】

$(function(){
  $(window).on('load scroll', function(){
    var doch = $(document).innerHeight(); //ページ全体の高さ
    var winh = $(window).innerHeight(); //ウィンドウの高さ
    var bottom = doch - winh; //ページ全体の高さ - ウィンドウの高さ = ページの最下部位置

//画面幅の条件分岐
    if (window.matchMedia('(max-width: 768px)').matches) {
      if (bottom * 0.9 <= $(window).scrollTop()) {
//一番下までスクロールした時に実行
        $('.scWorkflow #content01_bg').css({'background':'none'}); 

       }else{
//それ以外の時の処理
        $('.scWorkflow #content01_bg').css({'background':'url("画像(※直接パスで書かないと多分反映されません)") no-repeat top center/cover'}); 

       }
  } else if (window.matchMedia('(min-width:768px)').matches) {
  
  }
  });
  });
参考サイト
サイト名:JavaScript : ページの最下部に来た時にイベントを起こす
導入事例
スモカ歯磨 スモカ歯磨
永田製作所 永田製作所
【更新履歴】
2020.04.14 記事を公開しました。