滚动顶部的问题
我有以下标记:
<div style="overflow:auto;width:500px;height:100px;">
<ul>
<li>Item 1</li>
<li>Item 2</li>
<li>Item 3</li>
</ul>
</div>
Mow 我正在使用 jQuery 添加一个新的列表项。如果它被隐藏,如何使其可见(将 div 滚动到它)?
我尝试过 UL.scrollTop(nuLI.top);
但它不起作用。
I have the following markup:
<div style="overflow:auto;width:500px;height:100px;">
<ul>
<li>Item 1</li>
<li>Item 2</li>
<li>Item 3</li>
</ul>
</div>
Mow I'm adding a new listitem with jQuery. How can I make it visible (scrolling the div to it) in case it's hidden?
I've tried UL.scrollTop(nuLI.top);
but it didn't work.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您需要在溢出的元素(即
元素,而不是
)上调用
scrollTop()
元素。此外,您需要通过element.position().top< 获取
top
/code>并且您需要确保
元素使用
position:relative
进行相对定位,因为top
> 是相对于第一个下一个相对父元素的。这是一个 SSCCE:
You need to call
scrollTop()
on the element with the overflow, which is the<div>
element, not the<ul>
element. Further you need to grab thetop
byelement.position().top
and you need to ensure that the<div>
element is positioned relatively usingposition: relative
, since thetop
is relative to the firstnext relative parent element.Here's an SSCCE:
我尝试过@BalusC方法,但是如果滚动已经到达底部,滚动将会反弹。然后我发现,通过在实际的scrollTop之前插入“.scrollTop(0)”将保持滚动位置。
$('#div').scrollTop(0).scrollTop($('#li3').position().top);
I have tried @BalusC method, but the scroll will bounce back if it has already reached the bottom. Then I figured out, by inserting ".scrollTop(0)" before the actual scrollTop will maintain the scroll position.
$('#div').scrollTop(0).scrollTop($('#li3').position().top);