【发布时间】:2020-11-19 06:15:31
【问题描述】:
我设法用以下代码编写了实验,它或多或少地工作。当您将鼠标悬停在链接上时,应该有一个链接可以打开一个弹出窗口,并使其他链接变暗。
https://jsfiddle.net/sigug/owfknbd6/49/
现在的问题是,当弹出窗口位于链接上方时(这不是问题),它开始闪烁可能是因为“悬停”功能变得“混乱”或其他原因。如何解决这个问题?
<div class="container">
<a data-target="boxid1" class="link-box"><img src="https://via.placeholder.com/350x65"></a>
</div>
<div class="container">
<a data-target="boxid2" class="link-box"><img src="https://via.placeholder.com/350x65"></a>
</div>
<div class="container">
<a data-target="boxid3" class="link-box"><img src="https://via.placeholder.com/350x65"></a>
</div>
<div id="boxid1" class="modal-box">
Content Box 1
</div>
<div id="boxid2" class="modal-box">
Content Box 2
</div>
<div id="boxid3" class="modal-box">
Content Box 3
</div>
.container { background: black; color: white; padding: 50px; float: left; border: 1px solid red; margin: 5px; text-align: center; }
.modal-box { display: none; position: absolute; top: 50%; left: 50%; transform:translate(-50%,-50%); background: blue; color: white; padding: 25px; width: 250px; height: 200px; }
.dim { opacity: 0.3; }
$(function(){
$('.link-box').hover(function(e){
var $parent=$(this).closest('.container');
$('.container').not($parent).addClass('dim');
$('#'+$(this).attr('data-target')).show();},
function(e) {
var $parent=$(this).closest('.container');
$('.container').not($parent).removeClass('dim');
$('#'+$(this).attr('data-target')).hide();
}
);
});
【问题讨论】:
标签: jquery css popup hover flicker