mCustomScrollBar“scrollTo,divID”无法正常工作

时间:2014-02-04 22:21:45

标签: jquery html scroll scrollto custom-scrolling

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

我有一个包含很多div的div(id =“#wrapper”)(每个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);

这个函数声称在#wrapper div中将“divID”滚动到视图中然后它然而我遇到的问题是它有时需要2-4次调用“scrollTo”函数“divID”进入了视野。

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

亲切的问候

1 个答案:

答案 0 :(得分:5)

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

我遇到了同样的问题。想要滚动到列表中的选定项目(选择了类的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);