我想显示一个div6秒钟,除非用户滚动,否则会自动隐藏div。 目前我有这个
var wasScrolled = false;
$(window).on('scroll', function(){
wasScrolled = true;
hideBasketballs();
});
hideBasketballs();
function hideBasketballs() {
if(wasScrolled === false) {
$(".basketballs").delay(6000).slideUp();
} else {
$(".basketballs").slideUp();
}
}
这并没有像我预期的那样工作,相反,div 总是等待 6 秒,如果用户滚动,它不会向上滑动。
我也简单地尝试了这个:
$(window).on('scroll', function(){
$(".basketballs").slideUp();
});
$(".basketballs").delay(6000).slideUp();
但我有同样的问题,任何指导将不胜感激!
更新:
var wasScrolled = false;
$(window).on('scroll', function(){
wasScrolled = true;
hideBasketballs();
});
hideBasketballs();
function hideBasketballs() {
if(wasScrolled === false) {
setTimeout(function() {
$('.basketballs').slideUp();
}, 6000);
} else {
$(".basketballs").slideUp();
}
}
也许尝试添加一个 setTimeout 6 秒来检查 wasScrolled 是否仍然为假,然后调用 slideup,而不是使用 .delay ?也许在设置了延迟操作的元素上调用即时 slideUp 不起作用