2016-01-22 74 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

相关问题