当点击浏览器顶部时,使用jquery滚动固定元素

时间:2011-10-13 03:11:58

标签: jquery css scroll position

我的脚本有点抖动。让我们说这是一个距离浏览器顶部25px的元素,当我继续向下滚动时。在我的浏览器顶部触及之前,该元素不会变为position:fixed;。然后当我向下滚动时,该元素将会跟随。然而,当我向后滚动到顶部时,该抖动就会出现,该元素将跟随到我的页面顶部,然后它将自身重置回其原始位置(距离顶部25px)。

有没有办法去除抖动?

谢谢!

这是我的jquery脚本:

$(function() {
var a = function() {
    var b = $(window).scrollTop();
    var d = $("#notification-anchor").offset({scroll:false}).top;
    var c = $("#notification");
    if (b > d) {
        c.css({position:"fixed",top:"0px"})
    } else {
            if(b<=d){
        c.css({position:"relative"})
            }
    }
};
$(window).scroll(a);a()

});

1 个答案:

答案 0 :(得分:5)

尝试使用以下代码。 .toolsbar 会像GMail工具栏一样贴在页面顶部。你想要的吗?

$(function() {
    var $sidebar = $('.toolsbar');
    $window = $(window);
    offset = $sidebar.offset();
    topPadding = 0;

    $window.scroll(function() {
        if ($window.scrollTop() > offset.top) {
            $sidebar.css({
                'top': '0',
                'position': 'fixed'
            });
        } else {
            $sidebar.css({
                'top': '',
                'position': ''
            });
        }
    });            
});