在一定时间后启用悬停事件
Enable hover event after certain time
我想通过 jQuery 禁用锚标记上的悬停事件一段时间。
示例:我有一些 CSS 样式用于锚点 () 元素上的悬停效果。当我悬停元素时,我希望它等待一定时间(500 毫秒左右),然后开始渲染悬停效果。
也许是这样的?
$("#navigation").hover(function () {
$("li.has-submenu").off('hover');
setTimeout(function () {
$("li.has-submenu").on('hover');
}, 1000);
});
我最近查了一下,现在是2015年,这意味着你可以用CSS3来做这个。
以下将在 500 毫秒后开始为所有链接设置动画背景颜色。
不需要 jQuery 或任何 JavaScript。
a {
-webkit-transition: all 500ms ease-in;
-moz-transition: all 500ms ease-in;
-ms-transition: all 500ms ease-in;
-o-transition: all 500ms ease-in;
transition: all 500ms ease-in;
}
a:hover {
background-color: #c00;
transition-delay: 500ms;
}
<a href="">Hover me</a>
如果您绝对需要使用 JavaScript 来做到这一点,您可以使用 setTimeout
将悬停的 class 应用于元素:
jQuery(function($) {
$("a").hover(function() {
var el = $(this);
var timeout = setTimeout(function() {
el.addClass("hover");
}, 500);
el.data("timeout", timeout);
}, function() {
clearTimeout($(this).removeClass("hover").data("timeout"));
});
});
a {
-webkit-transition: all 500ms ease-in;
-moz-transition: all 500ms ease-in;
-ms-transition: all 500ms ease-in;
-o-transition: all 500ms ease-in;
transition: all 500ms ease-in;
}
a.hover {
background-color: #c00;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<a href="">Hover me</a>
我猜你想要这样的东西:
<div id='a' style="border:2px solid black" >
<h3>Hove On me</h3>
For 2000 milliseconds. You will get an alert.
</br>
</div>
$(document).ready(function(){
var delay=2000, setTimeoutConst;
$('#a').hover(function(){
setTimeoutConst = setTimeout(function(){
/* Do Some Stuff*/
alert('Thank You!');
}, delay);
},function(){
clearTimeout(setTimeoutConst );
})
})
我想通过 jQuery 禁用锚标记上的悬停事件一段时间。
示例:我有一些 CSS 样式用于锚点 () 元素上的悬停效果。当我悬停元素时,我希望它等待一定时间(500 毫秒左右),然后开始渲染悬停效果。
也许是这样的?
$("#navigation").hover(function () {
$("li.has-submenu").off('hover');
setTimeout(function () {
$("li.has-submenu").on('hover');
}, 1000);
});
我最近查了一下,现在是2015年,这意味着你可以用CSS3来做这个。
以下将在 500 毫秒后开始为所有链接设置动画背景颜色。
不需要 jQuery 或任何 JavaScript。
a {
-webkit-transition: all 500ms ease-in;
-moz-transition: all 500ms ease-in;
-ms-transition: all 500ms ease-in;
-o-transition: all 500ms ease-in;
transition: all 500ms ease-in;
}
a:hover {
background-color: #c00;
transition-delay: 500ms;
}
<a href="">Hover me</a>
如果您绝对需要使用 JavaScript 来做到这一点,您可以使用 setTimeout
将悬停的 class 应用于元素:
jQuery(function($) {
$("a").hover(function() {
var el = $(this);
var timeout = setTimeout(function() {
el.addClass("hover");
}, 500);
el.data("timeout", timeout);
}, function() {
clearTimeout($(this).removeClass("hover").data("timeout"));
});
});
a {
-webkit-transition: all 500ms ease-in;
-moz-transition: all 500ms ease-in;
-ms-transition: all 500ms ease-in;
-o-transition: all 500ms ease-in;
transition: all 500ms ease-in;
}
a.hover {
background-color: #c00;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<a href="">Hover me</a>
我猜你想要这样的东西:
<div id='a' style="border:2px solid black" >
<h3>Hove On me</h3>
For 2000 milliseconds. You will get an alert.
</br>
</div>
$(document).ready(function(){
var delay=2000, setTimeoutConst;
$('#a').hover(function(){
setTimeoutConst = setTimeout(function(){
/* Do Some Stuff*/
alert('Thank You!');
}, delay);
},function(){
clearTimeout(setTimeoutConst );
})
})