123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- jQuery(document).ready(function($){
- var mainHeader = $('.houselist-header'),
- secondaryNavigation = $('.y_qylist'),
-
- belowNavHeroContent = $('.y_homelist_list'),
- headerHeight = mainHeader.height();
-
- var scrolling = false,
- previousTop = 0,
- currentTop = 0,
- scrollDelta = 10,
- scrollOffset = 150;
- $(window).on('scroll', function(){
- if( !scrolling ) {
- scrolling = true;
- (!window.requestAnimationFrame)
- ? setTimeout(autoHideHeader, 250)
- : requestAnimationFrame(autoHideHeader);
- }
- });
- $(window).on('resize', function(){
- headerHeight = mainHeader.height();
- });
- function autoHideHeader() {
- var currentTop = $(window).scrollTop();
- ( belowNavHeroContent.length > 0 )
- ? checkStickyNavigation(currentTop)
- : checkSimpleNavigation(currentTop);
- previousTop = currentTop;
- scrolling = false;
- }
- function checkSimpleNavigation(currentTop) {
-
- if (previousTop - currentTop > scrollDelta) {
-
- mainHeader.removeClass('is-hidden');
- } else if( currentTop - previousTop > scrollDelta && currentTop > scrollOffset) {
-
- mainHeader.addClass('is-hidden');
- }
- }
- function checkStickyNavigation(currentTop) {
-
- var secondaryNavOffsetTop = belowNavHeroContent.offset().top - secondaryNavigation.height() - mainHeader.height();
-
- if (previousTop >= currentTop ) {
-
- if( currentTop < secondaryNavOffsetTop ) {
-
- mainHeader.removeClass('is-hidden');
- secondaryNavigation.removeClass('fixed slide-up');
- belowNavHeroContent.removeClass('secondary-nav-fixed');
- } else if( previousTop - currentTop > scrollDelta ) {
-
- mainHeader.removeClass('is-hidden');
- secondaryNavigation.removeClass('slide-up').addClass('fixed');
- belowNavHeroContent.addClass('secondary-nav-fixed');
- }
-
- } else {
-
- if( currentTop > secondaryNavOffsetTop + scrollOffset ) {
-
- mainHeader.addClass('is-hidden');
- secondaryNavigation.addClass('fixed slide-up');
- belowNavHeroContent.addClass('secondary-nav-fixed');
- } else if( currentTop > secondaryNavOffsetTop ) {
-
- mainHeader.removeClass('is-hidden');
- secondaryNavigation.addClass('fixed').removeClass('slide-up');
- belowNavHeroContent.addClass('secondary-nav-fixed');
- }
- }
- }
- });
|