容器溢出时浮动表头?

时间:2013-03-29 20:41:02

标签: javascript css prototypejs

当用户滚动到顶部时,我正在使用position:fixed在我的表中浮动一些标题,这个方法是:http://css-tricks.com/persistent-headers/

在常规页面上一切都很好用,但每当我在另一个div中有一张桌子或者有一个固定高度的东西时overflow:auto它就会爆炸。

我需要做的是不仅要考虑页面范围的滚动,还要考虑我的容器的滚动?并考虑滚过所述容器的“顶部”?

感谢你们指点我的任何方向。

这是我现有的代码:

var mainheader = table.rows[0];
var tableHeight = table.getHeight();
var tableScroll = table.viewportOffset();
var headerHeight = mainheader.getHeight();

// TODO: If we're scrolling a subcontainer, we need to get the offset for that too! Somehow?

// If tableHeight < 1, it means our table his hidden right now, so skip it
if (tableHeight < 1)
    continue;

// If we've scroll down past the very tip top of the table, but haven't yet scroll past the end of it, show our floating headers
if (tableScroll.top < 0 && tableHeight + tableScroll.top - headerHeight > 0)
{
    table.floatingheader.style.display = '';

    // Handle horizontal scrolling too!
    table.floatingheader.style.left = (tableScroll.left + 1) + 'px'; // 1px offset for border
}
else
    table.floatingheader.style.display = 'none';

注意:我可以访问prototype.js,但没有jQuery或任何其他第三方库。 :/

1 个答案:

答案 0 :(得分:1)

我意识到你没有使用jQuery,但你可能想在github上查看这些人的代码,看看他是如何实现它的,然后根据你的目的修改它:http://webpop.github.com/jquery.pin/