javascript - 将鼠标悬停在一个元素上显示 div,并将鼠标悬停在其上时显示第二个 div

标签 javascript jquery html css hover

我有一个带有悬停事件监听器的 div,当我将鼠标悬停在它上面时,它会在单独的 div 中显示一些图像。我想做的是:

如果我将鼠标悬停在第一个 div 上,第二个 div 应该可见,并且在一定时间后它应该淡出(到目前为止一切顺利,我有这方面的代码)。

当显示第二个 div 时(2000 毫秒),如果悬停,它不应消失。如果鼠标离开第二个 div,它就会消失。

在此示例中,当我将鼠标悬停在蓝色方 block 上时,会显示第二个方 block 。如果我将鼠标悬停在第一个,然后是第二个上,则绿色的应该可见,直到鼠标离开它(绿色的)。

你能帮我一下吗?

 $("#liOffices").hover(
   function() {
     $("#element").fadeIn(20, function() {
       $("#element").addClass("visible1");
       $("#element").removeClass("second");
     });


   }, function() {
     $("#element").fadeOut(2000, function() {
       $("#element").removeClass("visible1");
       $("#element").addClass("second");
     });
   }
 );
.first {
  position: absolute;
  width: 100px;
  height: 100px;
  background-color: #36F;
}
.second {
  position: absolute;
  margin-left: 150px;
  width: 100px;
  height: 100px;
  background-color: #3C6;
  display: none;
}
.visible1 {
  position: absolute;
  margin-left: 150px;
  width: 100px;
  height: 100px;
  background-color: #3C6;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<div id="liOffices" class="first"></div>



<div id="element" class="second"></div>

最佳答案

也尝试为#element绑定(bind)悬停事件。这将解决您面临的问题。并使用 .stop() 清除正在进行的动画队列。

 $("#liOffices,#element").hover(
   function() {
     $("#element").stop().fadeIn(20, function() {
       $("#element").addClass("visible1");
       $("#element").removeClass("second");
     });


   }, function() {
     $("#element").stop().fadeOut(2000, function() {
       $("#element").removeClass("visible1");
       $("#element").addClass("second");
     });
   }
 );
.first {
  position: absolute;
  width: 100px;
  height: 100px;
  background-color: #36F;
}
.second {
  position: absolute;
  margin-left: 150px;
  width: 100px;
  height: 100px;
  background-color: #3C6;
  display: none;
}
.visible1 {
  position: absolute;
  margin-left: 150px;
  width: 100px;
  height: 100px;
  background-color: #3C6;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<div id="liOffices" class="first"></div>



<div id="element" class="second"></div>

关于javascript - 将鼠标悬停在一个元素上显示 div,并将鼠标悬停在其上时显示第二个 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35948244/

相关文章:

javascript - Angular ng-blur 被焦点触发

html - 使布局可扩展的最佳做法是什么?

javascript - 试图让图像完全重叠,同时依次淡入

jquery - 将图像的比例从 100vh 动画化到 100% 宽度

javascript - 将 WebSockets 移入工作线程的原因

javascript - 我可以使用 JS 将链接中的 GET 参数替换为 Post 吗?

javascript - 防止可编辑 div 在输入某些字符时的行为

javascript - 在python中使用selenium,如何绕过 "Message: Element is not currently visible"?

javascript - jquery 点击 css zoom/-webkit-transform 后的位置

javascript - 用于 IE7/8 的 jQuery UI 对话框中的 Google Maps V3