noscroll

モーダル表示中などにスクロールを禁止する

詳しい導入事例は導入方法を参照してください。

  • DEMO

使い方

[overlay]は別途追加すること。

  • CSS
  • Script
.noscroll {
  width: 100%;
  overflow: hidden;
  position: fixed;
  left: 0;
}
.noscroll #root {
  scrollbar-gutter: stable;
  overflow: auto;
}
.overlay {
  width: 100%;
  height: 100%;
  background: var(--overlay);
  position: fixed;
  top: 0;
  left: 0;
  z-index: 1000;
  display: none;
}

function noscroll(){
  if(!$('.noscroll')[0]){
    let ws = $win.scrollTop();
    $rt.css('top', -ws).data('scroll', ws);
    $bd.addClass('noscroll');
  } else {
    $bd.removeClass('noscroll');
    $('body,html').scrollTop($rt.data('scroll'));
    $rt.removeAttr('style').removeData('scroll');
  }
}