Jquery 在卷轴上隐藏徽标,不显示';t在滚动回顶部时触发
我试图创建一个函数,当用户开始滚动页面时隐藏站点的徽标,然后当用户滚动回顶部时再次显示。触发隐藏部分工作很容易,但由于某些原因,在回滚时不会触发top事件。通过运行该位置的控制台日志,我看到它达到了0。我错过了什么Jquery 在卷轴上隐藏徽标,不显示';t在滚动回顶部时触发,jquery,scroll,window,hide,show,Jquery,Scroll,Window,Hide,Show,我试图创建一个函数,当用户开始滚动页面时隐藏站点的徽标,然后当用户滚动回顶部时再次显示。触发隐藏部分工作很容易,但由于某些原因,在回滚时不会触发top事件。通过运行该位置的控制台日志,我看到它达到了0。我错过了什么 $(window).scroll( function() { if( $(this).scrollTop() > 0 ) { hide_logo(); } else { show_logo(); } }); fu
$(window).scroll( function() {
if( $(this).scrollTop() > 0 ) {
hide_logo();
}
else {
show_logo();
}
});
function show_logo() {
if ( $('header').offset().top < 10 ) {
$('body').animate({ marginTop: 180 }, 400);
$('header').animate({ marginTop: 0 }, 400});
}
}
function hide_logo() {
if ( $('header').offset().top < 10 ) {
$('body').animate({ marginTop: 90 }, 400);
$('header').animate({ marginTop: -90 }, 400 });
}
}
$(窗口)。滚动(函数(){
如果($(this).scrollTop()>0){
隐藏_标志();
}
否则{
显示_徽标();
}
});
函数show_logo(){
if($('header').offset().top<10){
$('body').animate({marginTop:180},400);
$('header').animate({marginTop:0},400});
}
}
函数hide_logo(){
if($('header').offset().top<10){
$('body').animate({marginTop:90},400);
$('header').animate({marginTop:-90},400});
}
}
编辑:已解决,请参阅更新的代码。您的代码工作正常:
可能是其他js错误阻止了show的执行(在开发者控制台中查看错误计数),或者
show\u logo()
函数中有错误。谢谢!这两个函数实际上都运行得很好,但是hide_logo()会不断向上叠加元素的负边距(以隐藏它们),因此即使触发了show_logo(),它们在文档中的位置也会比返回时的位置更高。现在已解决,请参阅更新。