2016-09-19 66 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; 
    } 
}); 
相關問題