如何用jQuery设置滚动位置?

时间:2017-07-04 19:56:55

标签: javascript jquery html css

我找到了解决类似问题的解决方案HERE.但是我不能让它为自己工作。我遇到的问题是在我正在处理的网站上打开移动菜单时尝试锁定垂直滚动。每次打开菜单时,锁定滚动都会导致页面跳转到顶部。

jQuery的:

timber.openDrawerMenu = function () {
    var tempScrollTop = $(window).scrollTop();
    var $mobileMenu = $('.nav-bar'),
    $mobileMenuButton = $('#menu-opener'),
    $body = $('body');
    $mobileMenuButton.addClass('opened');
    $mobileMenu.addClass('opened');
    $body.addClass('opened-drawer');

  // Make drawer a11y accessible
  timber.cache.$navBar.attr('aria-hidden', 'false');

  // Set focus on drawer
  timber.trapFocus({
     $container: timber.cache.$navBar,
     namespace: 'drawer_focus'
  });

  // Escape key closes menu
  timber.cache.$html.on('keyup.drawerMenu', function(evt) {
    if (evt.keyCode == 27) {
      timber.closeDrawerMenu();
    }
  });
  console.log(tempScrollTop);
  $(window).scrollTop(tempScrollTop);
}

我添加了console.log()语句,以查看脚本是否正在捕获正确的scrollTop值,实际上它是。由于某种原因,它没有设置滚动位置,我无法弄清楚为什么。非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

我发现这是移动特定问题。

  1. 我有一点想法:
    • 尝试在正文标记上明确设置{{1}}。
  2. 如果这不起作用,我有一个更黑客的想法:
    • 尝试在关闭菜单之前显式重置滚动位置。
  3. 希望那些工作,如果没有,发表评论:)