javascript 锁定页面滚动

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript 锁定页面滚动相关的知识,希望对你有一定的参考价值。

  /**
   * Lock page scroll.
   *
   * Locks the page scroll so mobile menu takes over full screen and
   * user only scrolls through navigation menu.
   */
  function pageScrollLock() {
    var scrollPosition = [
      self.pageXOffset || document.documentElement.scrollLeft || document.body.scrollLeft,
      self.pageYOffset || document.documentElement.scrollTop  || document.body.scrollTop
    ];
    var html = jQuery('html');
    html.data('scroll-position', scrollPosition);
    html.data('previous-overflow', '');
    html.css('overflow', 'hidden');
    html.addClass('scroll-locked');
    window.scrollTo(scrollPosition[1], scrollPosition[2]);
  }

  /**
   * Unlock page scroll.
   */
  function pageScrollUnlock() {
    var html = jQuery('html');
    var scrollPosition = html.data('scroll-position');
    html.css('overflow', html.data('previous-overflow'));
    html.removeClass('scroll-locked');
    window.scrollTo(scrollPosition[1], scrollPosition[2]);
  }

  /**
   * Change scroll lock state.
   */
  function pageScrollState() {
    if ($('html').hasClass('scroll-locked')) {
      pageScrollUnlock();
    }
    else {
      pageScrollLock();
    }
  }

以上是关于javascript 锁定页面滚动的主要内容,如果未能解决你的问题,请参考以下文章

iOS页面控制滚动锁定

滚动时如何锁定表格的第一行和第一列,可能使用 JavaScript 和 CSS?

html 使用“锁定”正文覆盖滚动的示例页面

滚动锁定 scroll lock 键有什么用?

锁定正文滚动,阻止目标元素滚动

jsp页面表头锁定的问题