javascript - 在悬停的 li 元素上相对于 li 的位置显示一个隐藏的响应式 div

标签 javascript jquery css html

我有图像列表,在悬停每个 li 时,我需要一个 div 显示在悬停元素附近。我尝试使用 jquery 获取每个 li 的位置。但它没有用。我怎样才能确定这一点?

示例代码:

<ul>
    <li><img src="image1.png"></li>
    <li><img src="image2.png"></li>
    <li><img src="image2.png"></li>
</ul>
<div class="popup-box hide">
    <p> some text...</p>
</div>

<style>
.hide{display:none;}
</style>

最佳答案

我们可以使用 mouseentermouseoutmousemove 事件来做到这一点。


  • mouseenter 上,我们将显示 div。
  • mouseout 上,我们将隐藏 div。
  • mousemove 上,我们将动态更改 div 的位置。

$("#list").on("mouseenter", "li", function() {

  $("#popupbox").show();

  $(this).off("mousemove").on('mousemove', function(e) {
    $('#popupbox').css({
      'top': e.pageY,
      'left': e.pageX,
      'z-index': '1'
    });
  });

}).on("mouseout", "li", function() {

  $("#popupbox").hide();

})
li {
  background: #f00;
  color: #fff;
  margin-bottom: 10px;
}
.popup-box {
  position: absolute;
  width: 50px;
  height: 50px;
  background: #00f;
  margin-left: 5px;
  margin-top: 5px;
}
.hide {
  display: none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul id="list">
  <li>
    <img src="image1.png">
  </li>
  <li>
    <img src="image2.png">
  </li>
  <li>
    <img src="image2.png">
  </li>
</ul>
<div id="popupbox" class="popup-box hide">
  <p>some text...</p>
</div>

关于javascript - 在悬停的 li 元素上相对于 li 的位置显示一个隐藏的响应式 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31981452/

相关文章:

javascript - 当包含 ice 服务器时,WebRTC 卡在连接状态(远程候选甚至通过 LAN 引起问题)

jquery - 这个多 Action Jquery 可以简化吗?

javascript - 需要一种有效的方法来摆脱多个 HTML 文件中的重复 HTML 代码

javascript - id(由 javascript 使用)在与 div 一起使用时不起作用,并且 div 的图像在另一个之后出现

html - CSS 文本和图标居中对齐问题

javascript - 如何使用 JQuery 从表中选择非空的最后一个单元格的前一个兄弟

javascript - Angular.js Controller 在 View 之后加载

javascript - 使用 Intl API 获取时区在 Firefox : 中不起作用

javascript - woostercollective.com/Responsive Transition 没有响应

html - 如何居中对齐两个内容不同的div?