2016-04-21 18 views
1

我正在使用下面的函數滾動到Div內的Div。放錯位置的滾動條當scrollTo被調用

它可以工作,但汽車停留在最後的位置,所以如果用戶滾動閃爍到原來的位置。爲了說明滾動條實際上​​在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

SlimScrollscrollTo設置,你應該使用你的scrollTo功能。

scrollTo - 跳轉到指定的滾動值。可以在已啓用slimScroll的任何 元素上調用。例如: $(element).slimScroll({ scrollTo: '50px' });

你需要使用jQuery的position()方法來獲取目標元素相對於父的滾動距離。如果您需要詳細的幫助,請爲usermessageDiv發佈一些HTML。

+0

嘗試$(ele).scrollTop(position)得到相同的結果,但我會嘗試其他的 –