nate-v
9/8/2014 - 7:56 PM

Sticky Nav that unsticks itself

Sticky Nav that unsticks itself

$(document).ready(function() {  
  var stickyNavTop = $('.pinned').offset().top;
  var shouldStick = true;
  
  if(($('.pinned').offset().top+$('.pinned').outerHeight()+25)>=$('.footer').offset().top-20){
    shouldStick = false;
  }
  
  if(shouldStick){  
      var stickyNav = function(){ 
      var footerTop = $('.footer').offset().top-20;
      var scrollTop = $(window).scrollTop();
      var stickyStop = footerTop - $('.pinned').outerHeight();
  
        // console.log(footerTop + ':' + ($('.pinned').offset().top+$('.pinned').outerHeight()+25) + ':' + shouldStick);
  
          if (scrollTop > 385) {   
              $('.pinned').addClass('sticky'); 
          } else {  
              $('.pinned').removeClass('sticky');
          }
  
          if(scrollTop >= stickyStop){
            $('.pinned').css({
              position: 'absolute',
              top: stickyStop
            }); 
          }
          else {
             $('.pinned').css({
              position: '',
              top: ''
            });
          }
  
      };
  
      stickyNav();  
  
      $(window).scroll(function() {  
          stickyNav();  
      });  
  }
});