Jquery 改变类属性

标签 jquery html css

我正在尝试制作一个工具栏,当页面向下滚动并且工具栏上方的标题不在屏幕上时,它会将自己固定在我的网页顶部。然而,无论滚动如何,工具栏似乎都保持设置为绝对位置。这段代码中是否存在我没​​有看到的问题?

$(window).scroll(function() 
{
    if (isVisible($('.header-box'))) 
    {
        $('.toolbar').css({'position': 'absolute','top': '25%'});
    } 
    else 
    {
        $('.toolbar').css({'position': 'fixed','top': '0%'});
    }
});

function isVisible(elm) 
{
    var windowHeight = $(window).height(),
    pageTop = $(window).scrollTop(),
    Y = $(elm).offset().top,
    elementHeight = $(elm).height();

    return ((Y < (windowHeight + pageTop)) && (Y > (pageTop - elementHeight)));
}

最佳答案

看看这个:

$( window ) . scroll ( function () 
{
    var header = $( ".header-box" );
    var toolbar = $( ".toolbar" );
    if ( $( window ) . scrollTop () > header . offset ().top + header . height () ) { toolbar . css ( { "position": "fixed" } ); }
    else { toolbar . css ( { "position": "relative" } ); }
});

完整的例子在这个 fiddle 里:JSfiddle

希望对您有所帮助。

关于Jquery 改变类属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24478427/

相关文章:

css - Bootstrap 4 侧边栏 css 过渡不起作用

html - 我怎样才能制作不规则形状的div

javascript - 我有一个按钮,单击时会更改其中的文本,但不会改回

javascript - 导入 javascript 库可以在 chrome 中运行,但不能在 IE 中运行

javascript - 如何停止嵌入式YouTube视频

jquery - 如何单独对 jQuery 集合项进行动画处理

javascript - 为什么谷歌浏览器会在 pushState 上访问服务器?

javascript - JS库来清理从用户那里获得的数据?

javascript - 与 Jquery 延迟作斗争

html - 调整导航栏以适应屏幕宽度