Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá, o código abaixo anima uma div na minha página, está funcionando normalmente no Chrome, porém por algum motivo no Firefox e no IE nada acontece.
var hide = false;
$(document).scroll(function(){
if(document.body.scrollTop > 100 && !hide){
$("#header").animate({"margin-top":"0px",height:"50px",border:"0px",'background-color':'transparent'});
$("#logo").animate({color:'#FFFFFF',top:'10px'});
$("#header-container").animate({'background-color':'#242829',opacity:'0.9'});
hide = true;
}
else if(document.body.scrollTop < 100 && hide){
$("#header").animate({"margin-top":"50px",height:"80px",'background-color':'#FFFFFF',border:"1px"});
$("#logo").animate({color:'#444444',top:'25px'});
$("#header-container").animate({'background-color':'transparent',opacity:'1'});
hide = false;
}
});
Alguém faz ideia do motivo?
Estou usando o jQuery 1.10.2, jQuery UI 1.10.4, Firefox 31.0 (acho que é a mais nova).
Complementando, olhei no debug do firefox nenhum erro aparece, apenas a mensagem de alerta "O método getPreventDefault() não deve mais ser usado. No lugar, use defaultPrevented." (nem sei se tem a ver com o meu código).
Tentei assim e não deu certo, inclusive parou de funcionar no chrome. (não aparece nenhum erro no console, porém o efeito não aparece)
Hum.. tenta isso aqui:
http://wbruno.com.br/javascript-puro/como-fazer-menu-fixo-apartir-de-certa-rolagem-da-pagina/
var $w = $(window);
$w.on("scroll", function(){
if( $w.scrollTop() > 300 ) {
console.log('Maior que 300');
}
});Isso mesmo @William Bruno, deu certo, brigadão!!
Esse alerta é do próprio core do jQuery, pode deixar lá.
Quanto ao seu código, troca:
document.body.scrollToppor
$("body, html").scrollTop()