Javascript:滚动到表中的第 n 行?
使用纯 Javascript 或 jQuery,如何滚动页面以使表中的第 n 行位于页面中央?
我见过的一些具有此类功能的示例通常要求我滚动到的元素使用 id 作为选择器,但由于表具有动态数量的行并且可能会分页,所以我宁愿不走这条路必须为每个 标签提供一个 id。
最简单的方法是计算 td 相对于文档顶部的位置,然后使用 setInterval 滚动窗口,直到窗口中间 >= 到第 n 个 标签?
我想我想象它的工作方式的一些伪代码是:
function scrollToNthTD(i) {
var position = CalculatePositionOfTR(i);
var timer = setTimeout(function () {
ScrollDownALittle();
if( CenterOfVerticalWindowPosition > position)
clearInterval(timer);
}, 100);
}
Using either pure Javascript or jQuery, how do I scroll the page so that the nth row in a table is centered on the page?
Some examples I've seen that have this sort of feature usually require that the element I scroll to uses an id as the selector, but since the table has a dynamic amount of rows and may be paged, I'd rather not go this route of having to give each <td>
tag an id.
Is the easiest way to just calculate the position of the td relative to the top of the document and scroll the window using setInterval until the middle of the window is >= to the position of the nth <td>
tag?
I suppose some pseudo-code of the way I imagine it working would be:
function scrollToNthTD(i) {
var position = CalculatePositionOfTR(i);
var timer = setTimeout(function () {
ScrollDownALittle();
if( CenterOfVerticalWindowPosition > position)
clearInterval(timer);
}, 100);
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
最新更新(现代浏览器的 no-jquery)
演示位于 http ://jsfiddle.net/r753v2ky/
因为你可以在这里使用 jQuery,所以
演示位于 http://jsfiddle.net/SZKJh/
如果您希望它具有动画效果而不只是去那里,请使用
http://jsfiddle.net/SZKJh/1/
Latest update (no-jquery for for modern browsers)
Demo at http://jsfiddle.net/r753v2ky/
Since you can use jQuery here it is..
Demo at http://jsfiddle.net/SZKJh/
If you want it to animate instead of just going there use
Demo at http://jsfiddle.net/SZKJh/1/
不要使用 jQuery - 它会减慢网站速度!
Don't use jQuery - it slows down sites!
你可以做这样的事情
You can do something like this
试一试:
Give this a shot:
aka-g-petrioli
我已更正您的回答中的以下内容。
这将帮助您滚动准确的位置。
aka-g-petrioli
I have corrected the followings from your answer.
This will help you to scroll accurate position.