2016-09-19 67 views
0

我有一个以上的滚动功能是这样的:有什么方法可以合并(收集)所有滚动功能?

FIRST

$(document).scroll(function(){ 
     if(!$(".hotel-search-box").length){ 
      return false; 
     } 
     var y = $(this).scrollTop(); 
      if (y > $(".hotel-search-box").offset().top) { 
      $('.sticky-checkin').show(); 
      } else { 
      $('.sticky-checkin').hide(); 
      } 
    }); 

第二

$(document).scroll(function() { 
     if (!$("#aniStickyNav").length) { 
    return false; //Check if the element exist 
    } 
    var y = $(this).scrollTop(); 
    if (y > $(".after-scroll-sticky").offset().top+$(".hotel-search-box").height()) { 
    $('#aniStickyNav').show(); 
    } else { 
    $('#aniStickyNav').hide(); 
    } 
}); 

第三

$(window).on('scroll', function() { 
    backToTop(); 
}); 

我试过这样

$(window).scroll(function(){ 
     function siziArayalim(){ 
      var y = $(this).scrollTop(); 
     if (y > 800) { 
     $('.sizi-arayalim').fadeIn(); 
     } else { 
     $('.sizi-arayalim').fadeOut(); 
     } 
    } 
function aniStickyNav(){ 
     if (!$("#aniStickyNav").length) { 
      return false; //Check if the element exist 
     } 
     var y = $(this).scrollTop(); 
     if (y > $(".after-scroll-sticky").offset().top+$(".hotel-search-box").height()) { 
     $('#aniStickyNav').show(); 
     } else { 
     $('#aniStickyNav').hide(); 
     } 
    } 

function stickyCheckin(){ 
    if(!$(".hotel-search-box").length){ 
     return false; 
    } 
    var y = $(this).scrollTop(); 
     if (y > $(".hotel-search-box").offset().top) { 
     $('.sticky-checkin').show(); 
     } else { 
     $('.sticky-checkin').hide(); 
     } 
} 
    siziArayalim(); 
    aniStickyNav(); 
    stickyCheckin(); 
}); 

但没有任何工程

,因为不止一个滚动功能,有些JS功能未正常工作和预期,这就是为什么我想知道的是如何在只有一个功能健康的所有window.scroll功能结合起来?

回答

0

您的代码存在一些问题,第一个问题是您在滚动功能中声明了函数。性能不佳。第二个是你在函数中使用的$(this)。我不知道这是什么。在这种情况下,你正在使用,这将是窗口对象,但我不认为这就是你需要的。需要更多信息在这里。

function siziArayalim(){ 
    var y = $(this).scrollTop(); 
    if (y > 800) { 
     $('.sizi-arayalim').fadeIn(); 
    } else { 
     $('.sizi-arayalim').fadeOut(); 
    } 
} 

function aniStickyNav(){ 
    if (!$("#aniStickyNav").length) { 
     return false; //Check if the element exist 
    } 
    var y = $(this).scrollTop(); 
    if (y > $(".after-scroll-sticky").offset().top+$(".hotel-search-box").height()) { 
     $('#aniStickyNav').show(); 
    } else { 
     $('#aniStickyNav').hide(); 
    } 

    return true; 
} 


function stickyCheckin(){ 
    if(!$(".hotel-search-box").length){ 
     return false; 
    } 
    var y = $(this).scrollTop(); 
    if (y > $(".hotel-search-box").offset().top) { 
     $('.sticky-checkin').show(); 
    } else { 
     $('.sticky-checkin').hide(); 
    } 

    return true; 
} 


$(window).scroll(function(){ 
    siziArayalim(); 

    // check if the functions return false, if not, continue 
    if(!aniStickyNav()){ 
     return false; 
    } 

    if(!stickyCheckin()){ 
     return false; 
    } 
}); 
相关问题