5

我似乎在使用“.mCustomScrollbar("scrollTo",divID)" 函数滚动到某个元素时遇到问题。

我有一个 div (id="#wrapper") 包含很多 div(每个 20px 的高度不超过 800 div)。

然后,我将 mCustomScrollbar 添加到此 #wrapper div 以使用其自定义滚动条功能,如下所示:

$("#wrapper").mCustomScrollbar();

现在我有一个大的可滚动 div,其中包含一个“类似列表”的 div 结构,而不是实际的列表,只是像列表一样堆叠在一起的 div。

在我页面的其他地方,我有一个按钮,其中包含“#wrapper”div 内的 div 元素的 id,当我单击此按钮时,我希望将 div 元素滚动到视图中,这是我当前的尝试:

var divID = 'div[id^=' + clickedID +']';

$('#wrapper').mCustomScrollbar("scrollTo",divID);

该函数声称将“divID”滚动到#wrapper div 中的视图中,但是我遇到的问题是,在“divID”出现之前,它有时需要 2-4 次调用“scrollTo”函数。

有人可以帮我理解为什么“divID”在第一次调用“scrollTo”函数时不会滚动到视图中,以及如何让它按预期工作?

亲切的问候

4

1 回答 1

6

我知道我有点晚了,但也许我可以帮助你(或落在这里的某个人)......

我有同样的问题。想要滚动到列表中的选定项目(选择类的 li),并解决了仅传递我想要滚动的像素的问题。

就像是:

var objPixelScrollIntoView = $('#myObjToScrollIntoView')[0].offsetTop;
$('#myDivSetWith_mCustomScrollbar').mCustomScrollbar("scrollTo", objPixelScrollIntoView);

或者,特别针对您的情况:

var objDivPosition = $('div#' + clickedID)[0].offsetTop;  // The 'div' before '#' is not necessary, but I want to keep some reference to Your selector
$('#wrapper').mCustomScrollbar("scrollTo", objDivPosition);
于 2014-07-02T11:48:19.670 回答