【问题标题】:mCustomScrollBar "scrollTo, divID" not workingmCustomScrollBar“scrollTo,divID”不起作用
【发布时间】:2014-02-04 22:21:45
【问题描述】:

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

我有一个 div (id="#wrapper"),其中包含很多 div(每个 20 像素高度不超过 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 中的视图中,它确实但是我遇到的问题是它有时需要 2-4 次调用“scrollTo”函数之前“divID”进入视野。

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

亲切的问候

【问题讨论】:

  • 就我而言,我通过从某些目标 div 的子项中删除 margin: 0; 来解决此问题。听起来很蠢,但试试吧。

标签: jquery html scroll scrollto custom-scrolling


【解决方案1】:

我知道我来晚了,但也许我可以帮助你(或跌倒在这里的人)......

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多