我试图更改徽标图像src(如果不是)窗口scrollTop并向后显示淡入淡出效果,但即使您滚动一次,淡入&输出会多次发生。FadeIn&fadeOut在窗口滚动后多次发生
我想出了与console.log
即使你滚动一次(鼠标滚轮或箭头),它会记录多次消息(如8,10或15次)。这意味着徽标在将src更改为其他图像之前总是闪烁10次以上。
的jQuery:
$(window).scroll(function() {
if ($(window).scrollTop()) {
$.when($('#navbar').css('padding', '0px')).done(function() {
$('.logo img').fadeOut(400, function() {
$('.logo img').attr('src', 'images/small-logo.png');
console.log('bot');
}).fadeIn();
});
} else {
$.when($('#navbar').css('padding', '20px 0px')).done(function() {
$('.logo img').fadeOut(400, function() {
$('.logo img').attr('src', 'images/top-logo.png');
console.log('top');
}).fadeIn();
});
}
});
HTML:
<div class="col-lg-12">
<div class="col-lg-3 logo no-padding-left">
<a href="index.php">
<img src="images/logo.png"/>
</a>
</div>
<div class="col-lg-9 no-padding-right">
<div class="navbar-header">
<div id="navbar" class="navbar-collapse collapse">
<ul class="nav navbar-nav">
.
.
.
</ul>
</div>
</div>
</div>
</div>
我发现并试图很多解决方案(如.stop()
,如果动画等),但似乎没有什么工作对我来说我不知道为什么。
预先感谢您。
谢谢,只是试了一下,图像不闪烁为单个滚动。但现在的问题是,每次滚动时图像都会闪烁。有没有办法防止这种褪色,如果它已经发生过一次,直到你再次达到顶峰? – GeorgeGeorgitsis
我刚刚编辑了代码以包含可能为您解决该问题的标志?让我知道。 –