有没有办法组合(收集)所有滚动function?

我有多个这样的滚动函数:

第一

$(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函数组合起来健康?

您的代码存在一些问题,首先是您在scroll函数中声明了函数。 这对于性能来说并不合适。 第二个是你在函数内使用的$(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; } });