可滚动的div在大量填充后跳转到顶部

时间:2014-09-08 19:44:02

标签: javascript jquery html css

关于这个问题的一些信息:

我正在使用Internet Explorer 7/8(这不能更改)

该网站是动态填充的,并且变得非常大,它本质上是一本书,其中包含扩展/折叠章节的目录和按钮。

首先扩展/折叠章节没有问题,直到有一个非常大的章节。整本书都存储在一个可滚动的div中。

当问题发生时,大章节之上的任何内容都可以正常工作,以及相关章节。这个bug开始发生在大型章节下的章节中。当您展开/折叠并且章节位置位于div的下半部分时,它将正常工作。但是如果章节位置在div的上半部分它会出错(基于当你点击时当前滚动的时候)它会进行展开/折叠但是会跳转到目录的最顶层(它将滚动条设置为顶部。)

当章节扩展/折叠时,我没有任何逻辑可以滚动到顶部我只有逻辑来更改图标和不可见的div状态。

我尝试过的事情:

在章节展开/折叠后设置延迟,然后滚动到该章节的位置。 - 不起作用,无论如何都会滚动到顶部。

更改我的扩展/折叠方式 - 不起作用,同样的错误。

检查/更改了一些动态添加的内容 - 不起作用,一切都是有效的HTML,不应该是问题。

祈祷 - 不起作用。

以下是扩展/折叠章节的代码:

function() {
    $id = $(this).parent().prop("id");
    $id = parseInt($id.replace("_other", ""));
    document.getElementById($id + "_arrow").innerHTML = "<span style = 'display:inline;float:left;' class ='ui-icon ui-icon-triangle-1-s ui-state-default'></span>";
    if ($("#" + $id + "_content").css("display") == "none") {
        $("#" + $id + "_content").css("display", "block");
    } else {
        $("#" + $id + "_content").css("display", "none");
    }

});

0 个答案:

没有答案