我想改变div的颜色
当鼠标离开这个div然后不在这个div上返回5秒然后改变div背景颜色
这里有一些代码可以从div中获取最后一次鼠标输出时间
<html>
<head>
<meta charset="utf-8" />
<title>jQuery UI Effects - Animate demo</title>
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<style>
#effect { width: 240px; padding: 0.4em; position: relative; background: yellow; }
</style>
<script>
var sec = 0;
function pad ( val ) { return val > 9 ? val : "0" + val; }
setInterval( function(){
$("#effect").attr("name",pad(++sec%60));
}, 1000);
$(document).ready(function(){
$("#effect").mouseout(function (){
var time = $(this).attr("name");
alert("at Mouse out:- "+time+" Second ");
});
});
</script>
</head>
<body>
<div id="effect" class="ui-widget-content ui-corner-all">ON Ready Status...
</div>
</body>
</html>
<script>
</script>
如何在5秒后更改div颜色。鼠标出来了?
答案 0 :(得分:2)
$("#test").on('mouseenter', function() {
$("#test").css('background-color', 'red');
});
$("#test").on('mouseleave', function() {
var timer=self.setInterval(function() {
$("#test").css('background-color', 'blue');
window.clearInterval(timer);},5000);
});
});
答案 1 :(得分:1)
使用以下代码在5秒后运行代码
setTimeout(function() {
//your code
},5000);
答案 2 :(得分:1)
尝试
#effect.mouseout {
background: red;
}
和
$(document).ready(function () {
$("#effect").hover(function () {
var $this = $(this)
clearTimeout($this.data('mouseouttimer'));
$this.removeClass('mouseout');
}, function () {
var $this = $(this)
var timer = setTimeout(function () {
$this.addClass('mouseout');
}, 2000);
$this.data('mouseouttimer', timer);
}).trigger('mouseleave');
});
演示:Fiddle