2013-06-19 5 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 lol! при использовании OP вместо mouseenter/mouseleave и посмотрите, работает ли он –

+0

Можете найти кого-нибудь, использующего IE 7 !!! JQuery 2 не поддерживает IE 8 и ранжиров: D, это не ваша проблема. : D: D: D –

+0

Вы собрали 17 (!) Вопросов и не приняли их. Люди перестанут отвечать на ваши вопросы. Позаботьтесь об этом. Это способ сказать «спасибо» здесь, в Stack Overflow, и для будущих посетителей это полезная информация, чтобы узнать, какой из них был принят вами в качестве правильного ответа, который помог решить вашу проблему. –

ответ

1

После того, как вы шкурку ваш фиксированный HEADER (предположив, что вы делаете это правильно: 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 только для демо целей.

Смежные вопросы