2016-01-22 47 views
1

我希望當頁面從頁面頂部滾動時希望淡入div,但是我希望此div在接近底部時再次隱藏這一頁。僅在頁面中間顯示div

具體而言,我希望div在頂部200px或底部200px內隱藏。

我有兩個獨立工作的腳本,但是當兩者都處於活動狀態時,兩者之間的衝突會導致div閃爍和閃爍。

我該如何結合以下腳本來避免這種衝突?非常感激任何的幫助。謝謝!

$(function() { 
    $(window).scroll(function() { 
     if ($(this).scrollTop() > 200) { 
      $('#myDiv').fadeIn(500); 
     } else { 
      $('#myDiv').fadeOut(500); 
     } 
    }); 
}); 

$(function() { 
    $(window).scroll(function() { 
     if($(window).scrollTop() + $(window).height() > $(document).height() - 200) { 
      $('#myDiv').fadeIn(500); 
     } else { 
      $('#myDiv').fadeOut(500); 
     } 
    }); 
}); 
+0

是它發生時,窗口是400像素?每個人都獨立工作嗎? –

回答

0

這個怎麼樣:

$(function() { 
    var $window = $(window); 

    $window.scroll(function() { 
     var scrollTop = $(this).scrollTop(); 

     // only fadeIn between 200 from top and 200 from bottom 
     if (scrollTop > 200 && scrollTop < $(document).height() - $window.height() - 200) { 
      $('#myDiv').fadeIn(500); 
     } else { 
      $('#myDiv').fadeOut(500); 
     } 
    }); 
}); 

Example fiddle

+0

感謝您的快速回復!如果我想讓它做相反的事情,所以它從頂部200px後淡入(所以div只在頁面中間可見),我可以將淡入和淡出值切換嗎? – Alex

+0

如果你想對面(淡入200頂部和底部200),那麼你只需交換淡入和淡出。我已經添加了一個小提琴的答案,所以你可以有一個發揮它 – Pete

+1

我的錯誤,你的解決方案正是我以後! – Alex