2012-01-15 147 views
1

所以我有一個div,當你在頁面底部滾動時滑落。在那個div中,我有一個「X」錨,它再次滑動它(這是在jQuery中)。但是,如果我滾動,div再次滑落(自然)。所以我首先要X,使「#topDiv」向上滑動,然後忽略使其滑動的函數。忽略功能?

全碼:

$("#topDiv").hide(); 

    $(window).scroll(function() { 
     if ($(window).scrollTop() + $(window).height() > $(document).height() - 500) { 
      $("#topDiv").slideDown(); 
     } 


     if ($(window).scrollTop() + $(window).height() < $(document).height() - 800) { 

      $("#topDiv").slideUp(); 
     } 
     $("#closeTop").click(function() { 
      $("#topDiv").slideUp(); 
      return false; 
     }); 
    }); 

Demo Pagehttp://tutorials.underbakke.net/js/function/

回答

-1

試試這個:

$("#topDiv").hide(); 

$(window).addEventListener('scroll', function(event) { 
    if ($(window).scrollTop() + $(window).height() > $(document).height() - 500) { 
     $("#topDiv").slideDown(); 
    } 


    if ($(window).scrollTop() + $(window).height() < $(document).height() - 800) { 
     $("#topDiv").slideUp(); 
    } 

    $("#closeTop").click(function() { 
     $("#topDiv").slideUp(); 
     $(window).removeEventListener('scroll',arguments.callee,false); 
    }); 
} 
3

你可以使用開/關方法 「X」 後取消綁定了slideDown是點擊

$("#topDiv").hide(); 

$(window).on('scroll', showTopDiv); 

function showTopDiv() { 
     if ($(window).scrollTop() + $(window).height() > $(document).height() - 500) { 
      $("#topDiv").slideDown(); 
     } 
} 

$(window).on('scroll', function() { 
     if ($(window).scrollTop() + $(window).height() < $(document).height() - 800) { 
      $("#topDiv").slideUp(); 
     } 
}); 

$("#closeTop").click(function() { 
     $("#topDiv").slideUp(); 
     $(window).off('scroll', showTopDiv); 
     return false; 
}); 

此外,在您的滑動功能中,將$("#topDiv").is(':visible')添加到if語句將確保它不會被執行。

是否真的需要綁定每個滾動的點擊功能?