如何为jquery鼠标悬停添加延迟
How to add delay to jquery mouseover?
我在一个页面上有一堆图像,我使用以下命令来触发事件:
$('.img').on('mouseover', function() {
//do something
});
是否有一些方法可以添加延迟,这样如果用户悬停1秒,那么它确实"//做一些事情"或实际上触发"mouseover"事件?
您可以使用setTimeout
var delay=1000, setTimeoutConst;
$('.img').on('hover', function() {
setTimeoutConst = setTimeout(function() {
// do something
}, delay);
}, function() {
clearTimeout(setTimeoutConst);
});
如果用户离开得太快,您可以使用setTimeout
和clearTimeout
来做到这一点:
var timer;
var delay = 1000;
$('#element').hover(function() {
// on mouse in, start a timeout
timer = setTimeout(function() {
// do your stuff here
}, delay);
}, function() {
// on mouse out, cancel the timer
clearTimeout(timer);
});
使用计时器并在鼠标离开时清除它,如果他们在1000ms内离开
var timer;
$('.img').on({
'mouseover': function () {
timer = setTimeout(function () {
// do stuff
}, 1000);
},
'mouseout' : function () {
clearTimeout(timer);
}
});
我也在寻找这样的东西,但也有二次延迟。我选择了这里的一个答案,并对其进行了扩展
这个例子在鼠标悬停X秒后显示一个div,并在鼠标悬停X秒后隐藏它。但如果将鼠标悬停在显示的div上,则会禁用。
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<style type="text/css">
.foo{
position:absolute; display:none; padding:30px;
border:1px solid black; background-color:white;
}
</style>
<h3 class="hello">
<a href="#">Hello, hover over me
<span class="foo">foo text</span>
</a>
</h3>
<script type="text/javascript">
var delay = 1500, setTimeoutConst,
delay2 = 500, setTimeoutConst2;
$(".hello").mouseover(function(){
setTimeoutConst = setTimeout(function(){
$('.foo').show();
},delay);
}).mouseout(function(){
clearTimeout(setTimeoutConst );
setTimeoutConst2 = setTimeout(function(){
var isHover = $('.hello').is(":hover");
if(isHover !== true){
$('.foo').hide();
}
},delay2);
});
</script>
工作示例你可以像这样使用jquery .Delay(未测试):
$("#test").hover(
function() {
$(this).delay(800).fadeIn();
}
);
http://api.jquery.com/delay/相关文章:
- 添加一个setTimeout方法会使jQuery悬停方法忽略setTimeout方法中的函数
- 将鼠标悬停在Angular JS中的一个元素上,并将Class添加到另一个元素中
- jQuery在悬停时只添加一个类
- 添加:在悬停其他elem时,将悬停状态添加到不同elem
- 将href链接添加到通过js鼠标悬停显示的图像
- IMG悬停添加样式
- CSS 在悬停时使图像变暗 - 在其周围添加一个 href
- 如何添加效果,以便将鼠标悬停在 SVG 元素上使其变大
- 将鼠标悬停在一个元素上,可以将类添加到另一个元素中
- hover添加类-或子类:悬停以影响父类
- 使用JQuery添加css属性悬停
- 悬停添加类在Chrome上出现故障,但在Firefox上工作正常
- 使用Javascript向鼠标悬停添加延迟
- 为鼠标悬停添加淡入淡出效果
- 当我在智能手机上显示时,将悬停添加到我的页面
- 如何在angularjs中为元素的悬停添加延迟?
- 如何为jquery鼠标悬停添加延迟
- JSF将悬停添加到面板中
- PHP页面-将弹出/悬停添加到调查邀请中
- 将鼠标悬停添加到当前导航栏