mat*_*att 20 javascript jquery delay hover
$('.file a').live('mouseenter', function() {
$('#download').stop(true, true).fadeIn('fast');
}).live('mouseleave', function() {
$('#download').stop(true, true).fadeOut('fast');
});
Run Code Online (Sandbox Code Playgroud)
我希望mouseenter
函数有stop()
1秒的延迟.所以,如果我将鼠标悬停在#download
该fadeIn
应延迟1秒后启动.如果我同时将鼠标移出,fadeIn
则不应该开始.抓住我?
我真的不知道怎么做,有什么想法吗?
Nic*_*ver 25
setTimeout()
在这种情况下,您需要使用,因为它的.delay()
工作方式(以及您无法取消它).
$('.file a').live('mouseenter', function() {
$.data(this, 'timer', setTimeout(function() {
$('#download').stop(true, true).fadeIn('fast');
}, 1000));
}).live('mouseleave', function() {
clearTimeout($.data(this, 'timer'));
$('#download').stop(true, true).fadeOut('fast');
});
Run Code Online (Sandbox Code Playgroud)
如果您使用.delay()
它将为该元素出列下一个动画,无论您是否先清除该队列.所以你需要一个你可以取消的超时,上面通过手动调用setTimeout()
和存储结果来实现,$.data()
所以你可以稍后通过它来清除它clearTimeout()
.
归档时间: |
|
查看次数: |
21633 次 |
最近记录: |