Javascript 延迟slideDown()/slideUp()-jquery下拉列表
我正在创建我正在创建一个下拉列表,我想延迟大约250毫秒,这样当有人快速滚动按钮时它不会被触发 这是我目前的密码。我尝试使用delay()方法,但效果不佳Javascript 延迟slideDown()/slideUp()-jquery下拉列表,javascript,jquery,Javascript,Jquery,我正在创建我正在创建一个下拉列表,我想延迟大约250毫秒,这样当有人快速滚动按钮时它不会被触发 这是我目前的密码。我尝试使用delay()方法,但效果不佳 $(".deltaDrop").hover(function(){ $('.deltaDrop ul').stop(false,true).slideDown(250); $('.delta').css('background-position','-61px -70px'); },function(){ $('.de
$(".deltaDrop").hover(function(){
$('.deltaDrop ul').stop(false,true).slideDown(250);
$('.delta').css('background-position','-61px -70px');
},function(){
$('.deltaDrop ul').stop(false,true).slideUp(450);
$('.delta').css('background-position','-61px 0');
});
谢谢
然后可以像这样使用clearTimeout()函数
clearTimeout(timer);
然后可以像这样使用clearTimeout()函数
clearTimeout(timer);
未经测试、未考虑因素:
$(".deltaDrop")
.hover(
function()
{
var timeout = $(this).data('deltadrop-timeout');
if(!timeout)
{
timeout =
setTimeout(
function()
{
$('.deltaDrop ul').stop(false,true).slideDown(250);
$('.delta').css('background-position','-61px -70px');
$('.deltaDrop').data('deltadrop-timeout', false);
},
250
);
$(this).data('deltadrop-timeout', timeout);
}
},
function()
{
var timeout = $(this).data('deltadrop-timeout');
if(!!timeout)
{
clearTimeout(timeout);
$('.deltaDrop').data('deltadrop-timeout', false);
}
else
{
$('.deltaDrop ul').stop(false,true).slideUp(450);
$('.delta').css('background-position','-61px 0');
}
}
);
未经测试、未考虑因素:
$(".deltaDrop")
.hover(
function()
{
var timeout = $(this).data('deltadrop-timeout');
if(!timeout)
{
timeout =
setTimeout(
function()
{
$('.deltaDrop ul').stop(false,true).slideDown(250);
$('.delta').css('background-position','-61px -70px');
$('.deltaDrop').data('deltadrop-timeout', false);
},
250
);
$(this).data('deltadrop-timeout', timeout);
}
},
function()
{
var timeout = $(this).data('deltadrop-timeout');
if(!!timeout)
{
clearTimeout(timeout);
$('.deltaDrop').data('deltadrop-timeout', false);
}
else
{
$('.deltaDrop ul').stop(false,true).slideUp(450);
$('.delta').css('background-position','-61px 0');
}
}
);
这应该行得通
$(".deltaDrop").hover(function(){
$('.deltaDrop ul').stop(false,true).hide(1).delay(250).slideDown();
$('.delta').css('background-position','-61px -70px');
},function(){
$('.deltaDrop ul').stop(false,true).show(1).delay(450).slideUp();
$('.delta').css('background-position','-61px 0');
});
仅在处理动画队列时有效<没有参数的code>.hide()和.show()
不会与动画队列交互。通过在.delay()
之前添加.hide(1)
和.show(1)
,幻灯片动画将在队列中等待 这应该行得通
$(".deltaDrop").hover(function(){
$('.deltaDrop ul').stop(false,true).hide(1).delay(250).slideDown();
$('.delta').css('background-position','-61px -70px');
},function(){
$('.deltaDrop ul').stop(false,true).show(1).delay(450).slideUp();
$('.delta').css('background-position','-61px 0');
});
仅在处理动画队列时有效<没有参数的code>.hide()和
.show()
不会与动画队列交互。通过在.delay()
之前添加.hide(1)
和.show(1)
,幻灯片动画将在队列中等待 附言:我真的不想要一个完整的答案,只要给我指出正确的方向:)附言:我真的不想要一个完整的答案,只要给我指出正确的方向:)太好了!这正是我需要的!很抱歉,我无法“更新”你的答案,但我没有足够的代表。这个答案是有问题的,因为如果你来回移动鼠标,每个鼠标上方都会实例化一个计时器,它会表现得很疯狂。太棒了!这正是我需要的!很抱歉,我无法“更新”您的答案,但我没有足够的重复次数。此答案有问题,因为如果您来回移动鼠标,将为每个鼠标指针实例化一个计时器,它将表现为疯狂。