我似乎在使用“.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”函数时不会滚动到视图中,以及我如何按照我的预期让它工作?
亲切的问候
答案 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);