0

私は非常に単純なタスクを手元に置いていますが、何かが正しく機能していません:|

全画面メニューを開くボタンがあり、他のすべてのコンテンツがフェードアウトします。メニューを閉じてコンテンツをフェードインする別のボタンがあります。

ただし、メニュー ウィンドウの高さは、コンテンツの高さとはかなり異なる場合があります。そのため、ユーザーが開いているメニューをクリックすると、ウィンドウの上部にジャンプします。ただし、ユーザーがウィンドウを閉じると、元のウィンドウのスクロール位置 (メニューをクリックした場所) に戻る必要があります。

私はこれまでこれを持っています *window.scrollTo(0,content_scroll_pos);動作しません! それは 0 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;
});
4

1 に答える 1

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;
});
于 2013-09-17T11:09:58.190 に答える