模拟位置:在jQuery中修复

Mic*_*oso 12 jquery scroll position fixed

我有一个大于页面宽度的标题,所以我不能用它将position:fixed他设置在页面顶部,因为我绝对需要能够水平滚动.我认为没有针对此的CSS解决方案.

我做了一个代码示例来尝试重现效果position:fixed,但是有不希望的跳转.我的代码如下:

$(window).scroll(function() {
            var y = $(window).scrollTop();
            $("#headertable").css('top', y+175);
});
Run Code Online (Sandbox Code Playgroud)

有没有办法让它真正附加,比如position:fixed?(奇怪的是,它现在在IE中比在FF中更好地显示,因为它没有这种"跳跃"效果)

请在此处找到一个示例:http://jsbin.com/eyuya/7.第一个表是position:fixed,另一个使用我的代码.如果有解决方案,这是我试图避免的跳跃效应.

编辑:

仍然没有找到一个令人满意的解决方案,我想我最终将使用它,因为该网站意味着在IE上使用它似乎不存在将div附加到视口的奇迹解决方案,并且能够水平滚动.如果有人遇到这个问题之前我找到一个很好的解决方案,我就会开始赏金.

感谢那些已经尝试回答这个问题的人并不像看起来那么简单问题;)

Dav*_*ing 8

您可以使用静态定位DIV包装元素以获取滚动条,然后监听窗口滚动并根据scrollLeft值定位固定标题:

var elem = $('#headertable');
var win  = $(window);
var wrap = $('<div>').css({
    width: elem.width(),
    height: elem.height()
});
elem.wrap(wrap);
win.scroll(function() {
    elem.css('left', win.scrollLeft()*-1);
});
Run Code Online (Sandbox Code Playgroud)

似乎在IE/FF/Chrome中工作:

http://jsbin.com/efuya3