当scrollTo被调用时,错位的滚动条

时间:2016-04-21 12:43:56

标签: javascript jquery html css

我正在使用以下功能滚动到Div内的Div。

它可以工作但是汽车停留在最后位置,所以如果用户滚动它会闪烁到原始位置。澄清滚动条实际上​​位于div的顶部但是用户看到底部元素但是当用户向上滚动时他或她没有获得移动到最后一个元素的预期结果它们被撞到顶端。

 jQuery.fn.scrollTo = function (elem, speed) {
            $(this).animate({
                scrollTop: $(this).scrollTop() - $(this).offset().top + $(elem).offset().top
            }, speed == undefined ? 1000 : speed);
            return this;
        };

onclick="$('#usermessageDiv').scrollTo('.last_usermessage', 2000);"

 $('.small-chat-box .content').slimScroll({
            height: '234px',
            railOpacity: 0.4
        });
  <div id="usermessageDiv" class="content" style="overflow: scroll; width: auto; height: 234px;">

下图显示了条形图与第二个下方红色箭头的位置,滚动条应与所示视图相关。

enter image description here

1 个答案:

答案 0 :(得分:1)

SlimScroll有一个scrollTo设置,您应该使用它来代替您的scrollTo函数。

  

scrollTo - 跳转到指定的滚动值。任何可以调用   已启用slimScroll的元素。例:   $(element).slimScroll({ scrollTo: '50px' });

您需要使用jQuery的position()方法来获取目标元素相对于父元素的滚动距离。如果您需要详细的帮助,请为usermessageDiv发布一些HTML。