2013-06-19 344 views
0
$(function() { 
    $(window).scroll(function() { 
     var scrollTop = $(window).scrollTop(); 
     if (scrollTop != 0) 
      $('#header').hide(); 
     else  
      $('#header').show(); 
    }); 
    $('#header').hover(
     function (e) { 
      var scrollTop = $(window).scrollTop(); 
      if (scrollTop != 0) { 
       $('#header').show(); 
      } 
     }, 
     function (e) { 
      var scrollTop = $(window).scrollTop(); 
      if (scrollTop != 0) { 
       $('#header').hide(); 
      } 
     } 
    ); 
}); 

取决于滚动,它运作良好。 但与鼠标悬停,它不是特别是在IE7中工作。 :(悬停效果不起作用

难道错了

+0

@DerekHenderson哈哈!在OP使用,而不是鼠标鼠标/ mouseleave,看看它是否工作 –

+0

你可以找到使用IE 7的人! Jquery 2不支持IE 8和earlier:D,这不是你的问题。 :D:D:D –

+0

您收集了17个(!)问题并且没有任何问题。人们会停止回答你的问题。小心解决这个问题。这是一种在Stack Overflow上说“谢谢”的方式,对于未来的访问者,这是一个有用的信息,可以查看哪个人被您接受为正确答案,有助于解决您的问题。 –

回答

1

一旦你隐藏您的固定报头,(假设你正在做的是正确的:fixed)? 有没有办法可以在该元素上召回mouseenter原因它不能叠加更多在它的原始空间。

可以更好地处理元素的透明度。这是一个使用jQuery的.fadeTo()

http://jsbin.com/eviziq/3/edit

为例
$(window).scroll(function(){ 
    $('#header').stop().fadeTo(300, $(window).scrollTop() > 0 ? 0.1 : 1); 
}); 

$('#header').on('mouseenter mouseleave', function(e){ 
    if($(window).scrollTop() > 0) { 
     $('#header').stop().fadeTo(300, e.type=="mouseenter" ? 1 : 0.1); 
    } 
}); 

我用不透明度0.1代替0仅用于演示目的。