滚动显示多个固定标题

毗湿奴

假设我的标题如下

<h1 class="fixontop">heading 1</h1>
content goes here.
.
.
.
long paragraph.
<h1 class="fixontop">heading 2</h1>
2nd content goes here.
.
.
.
long paragraph.
<h1 class="fixontop">heading 3</h1>
3nd content goes here.
.
.
.
long paragraph.

所以当我滚动标题1应该固定在顶部并且向下滚动标题2应该固定并且所有其他标题固定位置都必须删除时。我认为这只能通过jquery来实现。我该怎么办?

我在下面尝试过..

 $(window).scroll(function() {
    if ($(this).scrollTop() ) { //Here some condition which finds if the heading tag is in screenview.  
        $('.fixontop').css({
            'display': 'fixed'
        });
    }
});

这是小提琴http://jsfiddle.net/0can8pt9/

罗伯特·伊萨夫(Robert Isaev)

检查一下这个https://jsfiddle.net/ctjdpe91/1/我认为使用类似Waypoint之类的插件来实现此目的是一个好主意

var scrollTimeout;
var breakpoints = [];

function fix_heading(heading){
    if( heading.hasClass('heading-fixed'))
        return 

    heading
        .addClass('heading-fixed')
         // prevent content jumping
        .parents('section').css('padding-top', heading.height())
}

function unfix_heading(heading){
    if(! heading.hasClass('heading-fixed'))
        return

    heading
        .removeClass('heading-fixed')
        .parents('section').css('padding-top', 0);    
}

function fix_headings(breakpoints){
    clearTimeout(scrollTimeout);
    scrollTimeout = setTimeout(function(){
        $(breakpoints).each(function(){
            var breakpoint = this;
            var breakpoint_heading = $('.fixontop[data-fix-on='+breakpoint+']')

            if(document.body.scrollTop > breakpoint ){
                fix_heading(breakpoint_heading)
            }

            if(document.body.scrollTop < ( breakpoint )){
                unfix_heading(breakpoint_heading)
            }

            //scrolled out of parent container
            if(document.body.scrollTop > (breakpoint + breakpoint_heading.parents('section').outerHeight())){
                unfix_heading(breakpoint_heading)   
            }

         })
     }, 30) //timeout here for better performance
}

$(function(){
    //setup breakpoints
    $('.fixontop').each(function(){
        breakpoints.push ($(this).position().top)
        $(this).attr('data-fix-on', $(this).position().top)
    })
    $(document).scroll(function(){fix_headings(breakpoints)})
})

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

滚动显示多个固定标题

来自分类Dev

向下滚动隐藏固定标题,向上滚动显示并悬停

来自分类Dev

CSS:具有多个表头的固定标题的滚动表

来自分类Dev

CSS:具有多个表头的固定标题的滚动表

来自分类Dev

滚动时更改固定标题

来自分类Dev

滚动内容时如何固定标题

来自分类Dev

向下滚动时显示在固定标题上方的图像和文本

来自分类Dev

固定标题上的按钮显示

来自分类Dev

固定标题上的按钮显示

来自分类Dev

具有可滚动行和固定标题的表

来自分类Dev

滚动到固定标题的锚点位置

来自分类Dev

具有固定标题的UWP垂直滚动条

来自分类Dev

具有固定标题的可滚动div内容区域

来自分类Dev

滚动过去的元素时更改固定标题的背景

来自分类Dev

滚动到固定标题顶部时延迟重新绘制

来自分类Dev

向下滚动页面后固定标题跳

来自分类Dev

滚动时的HTML固定标题栏

来自分类Dev

表格可滚动时无法固定标题

来自分类Dev

具有固定标题的水平和垂直滚动内容

来自分类Dev

滚动过去的元素时更改固定标题的背景

来自分类Dev

滚动时在元素上覆盖固定标题

来自分类Dev

无法在滚动移动中隐藏固定标题?

来自分类Dev

具有水平滚动内容的固定标题

来自分类Dev

滚动上方的Div时固定标题

来自分类Dev

滚动过去后如何固定标题

来自分类Dev

响应式表格滚动条与固定标题重叠

来自分类Dev

固定标题消失

来自分类Dev

CSS固定标题

来自分类Dev

固定标题重叠