Javascript 隐藏和显示div会导致此div中的列表滚动到顶部

Javascript 隐藏和显示div会导致此div中的列表滚动到顶部,javascript,jquery,html,Javascript,Jquery,Html,我通过定义两个div来模拟我有多个页面,每个div充当一个页面。此时只显示一页。这些部门是: divProjectList divProjectListItem 当用户打开网站时,会显示div“divProjectList”。此div包含一个未排序的项目列表。这是一个很长的列表,因此可以排序 用户从列表中单击一个项目后,我将执行一个$('divProjectList').hide(),然后执行一个$('divProjectListItem').show()。该列表现在对用户不可见,而是显示他从列

我通过定义两个div来模拟我有多个页面,每个div充当一个页面。此时只显示一页。这些部门是:

  • divProjectList
  • divProjectListItem
  • 当用户打开网站时,会显示div“divProjectList”。此div包含一个未排序的项目列表。这是一个很长的列表,因此可以排序

    用户从列表中单击一个项目后,我将执行一个
    $('divProjectList').hide()
    ,然后执行一个
    $('divProjectListItem').show()
    。该列表现在对用户不可见,而是显示他从列表中选择的项目的项目详细信息

    一旦用户单击关闭按钮,它就会以相反的方式工作。项目详细信息页面将被隐藏,项目列表页面将再次显示

    如果用户向下滚动了一点(或几页),那么项目列表将滚动回第一个项目,并且他单击的项目现在不在视图中

    我有一个按钮,它有一个隐藏和显示按钮,还有一个模拟我上面描述的行为的列表

    我想知道我在这里看到的是否是预期的行为,以及我如何能够绕过这一点。现在,我通过使用$.ScrollTo解决了这个问题:

    $('#' + currentProjectId).ScrollTo({duration: 0, offsetTop: 151})
    

    此jquery代码提醒您滚动到的位置,并在您按下show按钮时将您放回该位置:

    jquery:

    var scroll;
    
        $("#btnHide").on("click", function (e) {
            scroll = $(document).scrollTop();
            // $("#divOptions").hide();
            $("#divOptions").css('display', 'none');
        })
    
        $("#btnShow").on("click", function (e) {
            // $("#divOptions").show();
            $("#divOptions").css('display', 'block');
            if ( scroll !== null ) {
                $(document).scrollTop(scroll);
            }
        })
    

    我希望这对你有帮助

    此jquery代码提醒您滚动到的位置,并在您按下“显示”按钮时将您放回该位置:

    jquery:

    var scroll;
    
        $("#btnHide").on("click", function (e) {
            scroll = $(document).scrollTop();
            // $("#divOptions").hide();
            $("#divOptions").css('display', 'none');
        })
    
        $("#btnShow").on("click", function (e) {
            // $("#divOptions").show();
            $("#divOptions").css('display', 'block');
            if ( scroll !== null ) {
                $(document).scrollTop(scroll);
            }
        })
    

    我希望这对你有帮助

    此jquery代码提醒您滚动到的位置,并在您按下“显示”按钮时将您放回该位置:

    jquery:

    var scroll;
    
        $("#btnHide").on("click", function (e) {
            scroll = $(document).scrollTop();
            // $("#divOptions").hide();
            $("#divOptions").css('display', 'none');
        })
    
        $("#btnShow").on("click", function (e) {
            // $("#divOptions").show();
            $("#divOptions").css('display', 'block');
            if ( scroll !== null ) {
                $(document).scrollTop(scroll);
            }
        })
    

    我希望这对你有帮助

    此jquery代码提醒您滚动到的位置,并在您按下“显示”按钮时将您放回该位置:

    jquery:

    var scroll;
    
        $("#btnHide").on("click", function (e) {
            scroll = $(document).scrollTop();
            // $("#divOptions").hide();
            $("#divOptions").css('display', 'none');
        })
    
        $("#btnShow").on("click", function (e) {
            // $("#divOptions").show();
            $("#divOptions").css('display', 'block');
            if ( scroll !== null ) {
                $(document).scrollTop(scroll);
            }
        })
    

    我希望这对你有帮助

    谢谢你的回答Stefan!您的代码或多或少是我在代码中所做的,请参阅我的fp。我发现我需要100毫秒的时间来让它一直工作。谢谢你的回答Stefan!您的代码或多或少是我在代码中所做的,请参阅我的fp。我发现我需要100毫秒的时间来让它一直工作。谢谢你的回答Stefan!您的代码或多或少是我在代码中所做的,请参阅我的fp。我发现我需要100毫秒的时间来让它一直工作。谢谢你的回答Stefan!您的代码或多或少是我在代码中所做的,请参阅我的fp。我发现我需要用100毫秒的时间来让它一直工作。