2010-04-12 48 views
1

我有以下標記:問題scrollTop的

<div style="overflow:auto;width:500px;height:100px;"> 
    <ul> 
     <li>Item 1</li> 
     <li>Item 2</li> 
     <li>Item 3</li> 
    </ul> 
</div> 

慕我加入jQuery的一個新的列表項。如何隱藏它(如何滾動div)?我試過UL.scrollTop(nuLI.top);但它沒有工作。

回答

5

您需要調用scrollTop()上溢出的元素,這是<div>元素,而不是<ul>元素。此外,您需要通過element.position().top來獲取top,並且您需要確保<div>元素使用position: relative相對定位,因爲top與第一個下一個相對父元素相關。

下面是一個SSCCE

<!doctype html> 
<html lang="en"> 
    <head> 
     <title>SO question 2621792</title> 
     <script src="http://code.jquery.com/jquery-latest.min.js"></script> 
     <script> 
      $(document).ready(function() { 
       $('#div').scrollTop($('#li3').position().top); 
      }); 
     </script> 
     <style> 
      #div { 
       position: relative; 
       overflow: auto; 
       width: 100px; 
       height: 50px; 
      } 
     </style> 
    </head> 
    <body> 
     <div id="div"> 
      <ul> 
       <li>Item 1</li> 
       <li>Item 2</li> 
       <li id="li3">Item 3</li> 
       <li>Item 4</li> 
       <li>Item 5</li> 
      </ul> 
     </div> 
    </body> 
</html> 
0

我已經試過@BalusC方法,但滾動會反彈回來,如果它已經達到了底部。然後我想通過在實際的scrollTop保持滾動位置之前插入「.scrollTop(0)」。

$('#div').scrollTop(0).scrollTop($('#li3').position().top);