2014-10-18 51 views
0

我有一个类“sticky”被添加到div,当它到达页面顶部时,将它的css位置固定。Sticky Header,达到一个点

当用户到达该部分页面的底部时,我想要删除粘性类。

该标题仅与页面的一部分相关。

有关如何将其添加到我当前的代码的任何想法?

<script> 
    $(document).ready(function() { 
     var stickyNavTop = $('.header').offset().top; 

     var stickyNav = function(){ 
      var scrollTop = $(window).scrollTop(); 

      if (scrollTop > stickyNavTop) { 
       $('.header').addClass('sticky'); 
      } else { 
       $('.header').removeClass('sticky'); 
      } 
     }; 

     stickyNav(); 

     $(window).scroll(function() { 
      stickyNav(); 
     }); 
    }); 
</script> 

回答

1

JS Fiddle

使用这个功能来计算,如果滚动达到

我已经添加paddingcontainer页面结束的时候,header变化fixed所以document的高度保持不变

document height - window height它会给你val UE在滚动到达最后一个领域

function scrolling() { 
    doc = $(document).height() 
    win = $(window).height() 
    height = doc - win 
    if ($(window).scrollTop() >= height) { 
     $('.header').removeClass('sticky'); 
     $('.container').css('padding-top', '0'); 
    } 
} 

编辑

改变了功能找到,如果滚动进来的div和显示隐藏的范围

如果滚动进来蓝格的范围它会得到正常,否则它会得到fixed

JS Fiddle

function scrolling() { 
    doc = $(document).height() 
    hidingtop = $('.hiding').offset().top; 
    hidingbottom = $('.hiding').position().top + $('.hiding').outerHeight(true) 
    if ($(window).scrollTop() > hidingtop && $(window).scrollTop() < hidingbottom) { 
     $('.header').removeClass('sticky'); 
     $('.container').css('padding-top', '0'); 
    } 
} 
+0

你的代码帮助我处理了另一个问题(下面的内容在添加粘性类时跳起来了)。但是,这仍然不利于我在这里问的问题;也许我做错了什么。请注意,所有这些代码都来自使用angularjs路由功能加载到index.html中的部分页面。所以当用户滚动显示部分视图的那个div时,我想让那个粘性类去掉。我很抱歉,解释起来太复杂了,但一旦你看到它就是如此简单的事情 – 2014-10-18 17:48:44

+0

编辑答案@SevGevorkyan – 2014-10-19 12:51:21