2012-11-18 30 views
3

我已经找到了如何在滚动到滚动位置时显示div。我使用这样做的jQuery代码是这样的:只显示DIV通过滚动位置问题

$(window).scroll(function() { 
if ($(this).scrollTop() > 75) { 
    $("#ddmenubg2:hidden").fadeIn('slow'); 
} 
else { 
    $("#ddmenubg2:visible").fadeOut("slow"); 
} 

});

据我所知,这是告诉div ddmenubg2在您达到75滚动标记之前隐藏,然后在该标记之后的任何位置,div保持可见...以及该标记之前的任何内容,div将被隐藏。但是,出于某种原因,ddmenubg2 div在我的页面上的75像素标记之前。当我进入75分时,div消失并重新消失。这只发生在第一页加载或刷新时,它在多次上下滚动后可正常工作,但每当刷新页面时都会出现此问题,直到您向下滚动为止。

现在,解决此问题的一个简短方法是使ddmenubg2 div的显示为“无”。这实际上修复了整个滚动问题,但它使我的主菜单无法正常工作。

那么我该如何让ddmenubg2 div在超过75之前保持隐藏状态,并且一旦超过75就保持这个状态......即使在第一页加载或刷新时,

+0

'$( “#ddmenubg2:隐藏”)'这并不意味着它迫使格被隐藏,它只是选择它**如果它隐藏:[隐藏选择器文档](http://api.jquery.com/hidden-selector/)(因为如果它已经可见,则不需要淡入)。为什么你的菜单运行不正确,如果你隐藏'#ddmenubg2'默认使用display none?如果您可以制作一个[小提琴](http://jsfiddle.net)来展示您的问题,这将会很有帮助。 – Bogdan

+0

这将需要永远复制和粘贴我的所有网站到小提琴。但是,当我使显示无时,我的下拉菜单无法正常工作。 :(有没有办法隐藏div直到它达到75滚动标记,而不使用显示无代码?是否有任何解决方案涉及或操纵上面列出的JQuery代码? – user1658560

回答

8

使用visibility: hidden而不是显示无。这将保留元素的宽度和高度属性,但会使其不可见。以下是我如何修改代码以使其工作。

的CSS

#ddmenubg2{ 
    visibility:hidden; 
} 

JavaScript的

$(function(){ 
    $(window).scroll(function() { 
     if ($(this).scrollTop() > 75) { 
      $("#ddmenubg2:hidden").css('visibility','visible'); 
      $("#ddmenubg2:hidden").fadeIn('slow'); 
     } 
     else {  
      $("#ddmenubg2:visible").fadeOut("slow"); 
     } 
    }); 
});