2012-01-15 9 views
1

ページの下部にスクロールすると、divが表示されます。そのdivには、もう一度スライドする「X」アンカーがあります(これはjQueryにあります)。しかし私がスクロールすると、divは再び(自然に)滑り落ちます。ですから、最初にXを使い、 "#topDiv"をスライドさせてから、それをslideDownにする関数を無視します。機能を無視しますか?

全コード:

$("#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

この試してみてください:あなたは、 "X" は、後にslidedownをアンバインドするためにオン/オフの方法を使用することができ

$("#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

をクリックした

$("#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ステートメントに追加すると、実行されていないことが確認されます。

そして、すべてのスクロールでクリック機能をバインドする必要が本当にありますか?