我正在尝试实施产品目录。所有产品都将列在已启用溢出的表中。我需要一种方法来实现平滑滚动到可滚动表中的特定行。这是小提琴http://jsfiddle.net/PHTsd/
此处只有一个约束 - 页面不应滚动:只有表格应滚动
我尝试了一些方法,例如: Chris Coyer的Smooth scroll
$(function() { $('a[href*=#]:not([href=#])').click(function() {
if (location.pathname.replace(/^\//,'') == this.pathname.replace(/^\//,'') && location.hostname == this.hostname) {
var target = $(this.hash);
target = target.length ? target : $('[name=' + this.hash.slice(1) +']');
if (target.length) {
$('html,body').animate({
scrollTop: target.offset().top
}, 1000);
return false;
}
} }); });
将$('html,body')
替换为$('table')
,但无济于事。
我错过了什么吗?是否有插件已经实现了这个?
任何帮助都将不胜感激。
答案 0 :(得分:2)
可悲的是,你已经添加了溢出:auto和你的tbody标签的高度。尝试在其上使用scrollTop()而不是表。我会说做以下其中一项:
如果你想滚动tbody,然后定位而不是表本身 - 换句话说,上面你说你用$(“table”)替换了$(“html,body”);你用以下代替它:
$("tbody");
如果您不打算使用表头标记然后定位表本身而不是正文,但是您需要调整CSS以将overflow:auto属性设置为表而不是tbody < / em>的
在控制台中试试这个,你会发现它运行良好:
$("tbody").scrollTop(50);
你可以用任何东西替换50来看它有效果。你可能仍然需要摆弄它,但这应该让你朝着正确的方向前进。
如果您需要更多说明,请告诉我,我会帮助您。
还有一件事 - 为您的表提供ID或类,并定位:
<table id="someTable">
<tbody>.....</tbody>
</table>
$("#someTable tbody").scrollTop(50);
这是一种更安全的做事方式!