无法使用window.scrollTo(0,content_scroll_pos)使窗口滚动到所需位置;

时间:2013-09-17 09:20:31

标签: javascript jquery

我手头的任务非常简单,但有些事情无法正常工作:|

有一个按钮可以打开全屏菜单,淡出所有其他内容。还有另一个关闭菜单和淡入内容的按钮。

但菜单窗口高度可能与内容高度有很大差异。因此,当用户点击打开菜单时,他会跳到窗口顶部。但是当用户关闭窗口时,他应该返回到原始窗口滚动位置(确切地点击打开菜单的位置)。

我到目前为止* window.scrollTo(0,content_scroll_pos);不起作用!好吧它跳到0 0.但是我知道content_scroll_pos变量不是0。

//Content window position, before calling menu
var content_scroll_pos;
//Show menu
$("#open_nav").on("click", function(){
    //
    content_scroll_pos = $(document).scrollTop();
    //
    $("#grid_index, #sidebar-big").fadeOut("fast", function(){
        window.scrollTo(0,0);
        $("nav").fadeIn();
    });
    return false;
});
//Hide menu
$("#close_nav").on("click", function(){
    $("nav").fadeOut("fast", function(){
        window.scrollTo(0,content_scroll_pos);
        $("#grid_index, #sidebar-big").fadeIn();
    });
    return false;
});

1 个答案:

答案 0 :(得分:0)

修正问题,只需重新排列事件:

//Content window position, before calling menu
var content_scroll_pos;
//Show menu
$("#open_nav").on("click", function(){
    //
    content_scroll_pos = $(window).scrollTop();
    //
    $("#grid_index, #sidebar-big").fadeOut("fast", function(){
        window.scrollTo(0,0);
        $("nav").fadeIn("fast");
    });
    return false;
});
//Hide menu
$("#close_nav").on("click", function(){
    $("nav").fadeOut("fast", function(){
        $("#grid_index, #sidebar-big").fadeIn("fast");
        window.scrollTo(0,content_scroll_pos);
    });
    return false;
});