[英]Show a hidden responsive div on hovering li elements relative to the position of li
我有图像列表,并且在悬停每个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>
我们可以使用mouseenter
, mouseout
和mousemove
事件来做到这一点。
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>
基本上,您可以通过这种方式进行操作。
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
</ul>
<div class="popup-box hide" style="position:absolute;">
<p> some text...</p>
</div>
<style>
.hide{display:none;}
</style>
<script type="text/javascript">
$("ul li").on("mousemove", function(){
var position = $(this).position(),
popup = $(".popup-box");
popup.removeClass("hide");
popup.css({"top": position.top + "px", "left": position.left + "px"});
})
$("ul li").on("mouseout", function(){$(".popup-box").addClass("hide");})
</script>
我添加了style =“ position:absolute;” 在您的弹出框上,它会跟随我们在鼠标悬停时设置的css位置。
希望这个帮助
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.