我认为这很简单,但是错了...尝试使用.delay和在线发现的其他方法的组合,但无法在没有错误的情况下使用它。
我只想在鼠标离开.hover-area时添加一秒延迟...任何想法?
提前致谢!!!
$('.forward').css({ opacity:0, right:-20 });
$('.backward').css({ opacity:0, left:-20 });
$('.hover-area').hover(function () {
var conf_1 = { queue:false, duration:300, easing:'easeOutCubic' };
var conf_2 = { queue:false, duration:400, easing:'easeOutCubic' };
$(this).find('.backward, .forward').each(function () {
$(this).stop()
.animate($(this).data('animate-on'), conf_1)
.animate({ opacity:0.7 }, conf_2);
});
}, function() {
var conf_1 = { queue:false, duration:550, easing:'easeOutSine' };
var conf_2 = { queue:false, duration:300, easing:'easeOutSine' };
$(this).find('.backward, .forward').each(function () {
$(this).stop()
.animate($(this).data('animate-off'), conf_1)
.animate({ opacity:0 }, conf_2);
});
});
答案 0 :(得分:0)
一切似乎没问题,只需在.delay()
.stop()
之后执行your callback function
尝试:
$(this).find('.backward, .forward').each(function () {
$(this).stop().delay(1000)
.animate($(this).data('animate-off'), conf_1)
.animate({ opacity:0 }, conf_2);
});
我在此处所做的只是在.delay()
回调mouseout
中添加function()
。
答案 1 :(得分:0)
我认为你可以使用setTimeout
来做到这一点。将您的整个代码包含在要在mouseout
上执行的函数中,并将其与setTimeout
一起使用。
查看此示例或尝试此小提琴http://jsfiddle.net/mvcGN/
<强> HTML 强>
<div id="test">
</div>
<强> CSS 强>
#test{
width:200px;
height:200px;
background-color:#000;
}
<强> JQuery的强>
jQuery(document).ready(function($){
$('#test').hover(function(){
$(this).css("background-color","#456765");
},function(){
//wrap your code in a function like this
function do_it_after_delay(){
$('#test').css('background-color','#567324');
}
//simply use setTimeout to execute is with a delay
setTimeout(do_it_after_delay,5000);
});
});
当您的鼠标进入#test
时,此代码会更改DIV
的颜色,并在鼠标离开DIV