JavaScript 实现鼠标悬停延迟隐藏效果

作者:拾光

时间:2026-10-22

浏览:402

本文介绍如何使用 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 实现鼠标悬停延迟隐藏效果

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

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章