$(window).scroll(function () {
if ($(window).scrollTop() > 5) {
$("#logomenu").delay(750).queue(function () {
$("#logomenu").toggleClass("logofrontgo", true);
$("#logomenu").dequeue();
});
} else {
$("#logomenu").toggleClass("logofrontgo", false);
}
我满足IF条件时需要延迟,但我不需要它在ELSE中。但是......当代码进入" ELSE"时,有时它按顺序执行IF条件,我认为是因为IF在执行else之前就满足了,然后,当他进入ELSE,它在延迟(750ms)之后执行IF条件,然后evertyhing brokes ..
任何帮助?谢谢!
答案 0 :(得分:1)
似乎只是使用超时更容易,并使用开关切换延迟和类:
$(window).on('scroll', function(){
var _switch = $(window).scrollTop() > 5;
clearTimeout( $(this).data('timer') );
$(this).data('timer',
setTimeout(function() {
$("#logomenu").toggleClass( "logofrontgo", _switch );
}, _switch ? 750 : 0)
);
});