可滚动区域内的居中元素

时间:2011-07-15 21:13:45

标签: javascript

我的长ul元素充满了李。启用水平滚动,因此同时只能看到少量<li>

<ul id="longScrollableDiv">
   <li><a href="centerMe()">CenterMe</a></li> 
   <li><a href="centerMe()">CenterMe</a></li>
   <li><a href="centerMe()">CenterMe</a></li>
   <li><a href="centerMe()">CenterMe</a></li>
</ul>

我希望centerMe()在div的当前可见区域中选中,因此如果可能,所选的a将位于视图的中心。 我怎么能得到这个? scrollIntoView()不是元素的中心。如果可能的话,我不喜欢jQuery方法。

1 个答案:

答案 0 :(得分:0)

您必须为所有类似

的列表项添加onclick处理程序
target.parentNode.scrollTop = (target.offsetTop - target.parentNode.offsetTop) -
Math.round(target.parentNode.offsetHeight/2) + Math.round(target.offsetHeight/2) ;

工作示例为here