本文介绍如何使用 JavaScript 结合 setTimeout 实现鼠标悬停时的延迟隐藏效果。通过设置定时器,在鼠标离开元素后等待指定时间再执行隐藏操作,从而优化用户体验,避免频繁触发显示与隐藏。
JavaScript 实现鼠标悬停延迟隐藏效果
在网页交互中,有时需要实现类似 QQ 头像悬停显示信息的延迟隐藏功能。这种效果要求当鼠标移入元素时立即显示内容,而鼠标移出后并不立即隐藏,而是等待一段时间(如 700 毫秒)后再执行隐藏操作,从而提升用户操作的流畅度。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>延迟隐藏</title>
<style>
#div1{
width:100px;
height:100px;
background:yellow;
border: 5px solid #999;
border-radius: 10px;
position: absolute;
right: 50px;
text-align: center;
line-height: 100px;
margin-bottom:10px;
}
#div2{
width:200px;
float: left;
height:200px;
border: 5px solid #999;
border-radius: 10px;
position: absolute;
right:160px;
text-align: center;
line-height: 200px;
background:green;
display:none;
}
</style>
<script>
window.onload=function(){
var div1=document.getElementById("div1");
div1.innerHTML="鼠标请放上!";
var div2=document.getElementById('div2');
div2.innerHTML="鼠标请移开!";
var timer=null;
div1.onmouseover= function(){
clearTimeout(timer);
div2.style.display='block';
};
div1.onmouseout= function(){
clearTimeout(timer);
timer= setTimeout(function(){
div2.style.display='none';
}, 700);
};
div2.onmouseover=function(){
clearTimeout(timer);
};
div2.onmouseout=function(){
clearTimeout(timer);
timer=setTimeout(function(){div2.style.display='none';},700);
}
}
</script>
</head>
<body>
<div id="div1"></div>
<div id="div2"></div>
</body>
</html>

以上关于使用 JavaScript 实现鼠标悬停延迟隐藏功能的示例代码及说明,旨在为开发者提供实用的参考方案。希望本文内容能帮助您更好地掌握相关技术,如有任何疑问或建议,欢迎继续支持本站。