jQuery在scrollTop()调用

时间:2016-02-26 12:27:33

标签: javascript jquery scroll scrolltop

我有一个非画布菜单,从右侧滑入并位于页面顶部。为了防止滚动条,我在菜单打开时将内容部分的位置设置为固定。问题是,当我关闭菜单时页面上的滚动位置丢失,用户将返回到页面顶部。

我正在尝试存储页面的滚动位置,然后在窗口关闭时设置滚动,但它不起作用。如果我调试代码,我可以看到scrollTop()按预期运行,但它进入jQuery.js脚本,并在几次函数调用后,它将滚动重置到页面顶部。

我做错了什么?

    var scrollPos;

    function openMenu() {
        $('body').addClass('open');
    }

    function closeMenu(compat) {
        $('body').removeClass('open');
    }

    /***  Event Handlers ***/
    $('#js-menu-toggle').on('click', function() {
        scrollPos = $(window).scrollTop();
        openMenu();
    });

    $('#js-menu-close').on('click', function() {
        closeMenu(); 
        $(window).scrollTop(scrollPos);
    });

1 个答案:

答案 0 :(得分:0)

我很抱歉没有提供足够的MCVE。

事实证明,问题是事件被<a>链接到&#34;#&#34; href,所以加入

return false; 

因为.on事件的最后一行解决了我的问题。