使用Javascript使当前h1/h2具有粘性

使用Javascript使当前h1/h2具有粘性,javascript,css,Javascript,Css,我想通过使h1或h2元素(向下滚动时)在顶部变为粘性,直到下一个标题即将变为粘性,从而使包含大量文本的长网站更加方便 我相信我在一些网站上看到过,但我不知道怎么称呼它,也找不到一个例子 我使用的是Bootstrap和JQuery,所以一个能与它们一起工作的解决方案将是完美的 $(window).on("scroll",function(){ /*Check if window scroll Top reaches menu position */ if ($(window).scroll

我想通过使h1或h2元素(向下滚动时)在顶部变为粘性,直到下一个标题即将变为粘性,从而使包含大量文本的长网站更加方便

我相信我在一些网站上看到过,但我不知道怎么称呼它,也找不到一个例子

我使用的是Bootstrap和JQuery,所以一个能与它们一起工作的解决方案将是完美的

$(window).on("scroll",function(){
/*Check if window scroll Top reaches menu position */
    if ($(window).scrollTop() >= 100) {
        $('div.menu-class').addClass('fixed');
        }
    else {
       $('div.header').removeClass('fixed');

    }
});
或者,您可以检查菜单元素top position是否等于windowscroll top

 var window_top_position = $(window).scrollTop();
 var menuElement = $('.menu-class');
 var Menu_top_position = $menuElement.offset().top;
然后检查条件,如果条件满足,则添加“fixed”,否则删除“fixed”类

别忘了为修复添加CSS

.fixed{
position:fixed;
top:0;
}

如果这个答案对你有帮助,请接受。

你试过什么了吗?听起来你可以试试position:sticky
让当前h1/h2变得sticky
,但我不知道怎么称呼它。好吧,再读一遍这两个句子:)这里已经回答了:这不是菜单元素的问题。是关于章节标题的。这可以通过css实现