Javascript jQuery.show()/.hide()一直闪烁
当我将鼠标悬停在#三角形上时#tri覆盖将显示,但会一直闪烁,因为它与css中的“display:none”有冲突。他不断地从“display:none”转到“display:block”,这会导致闪烁效果。我如何避免这种冲突 我正在使用下面的代码Javascript jQuery.show()/.hide()一直闪烁,javascript,jquery,css,hide,show,Javascript,Jquery,Css,Hide,Show,当我将鼠标悬停在#三角形上时#tri覆盖将显示,但会一直闪烁,因为它与css中的“display:none”有冲突。他不断地从“display:none”转到“display:block”,这会导致闪烁效果。我如何避免这种冲突 我正在使用下面的代码 $(函数(){ $('#三角形')。悬停(函数(){ $('#tri overlay').show(); },函数(){ $('#tri overlay').hide(); }); }); 。幻灯片:{ 宽度:50%; 身高:50%; } #三角{
$(函数(){
$('#三角形')。悬停(函数(){
$('#tri overlay').show();
},函数(){
$('#tri overlay').hide();
});
});代码>
。幻灯片:{
宽度:50%;
身高:50%;
}
#三角{
宽度:12em;
高度:10公分;
位置:相对位置;
背景:红色;
显示:块;
}
#三重叠加{
背景:绿色;
宽度:100%;
身高:100%;
}
使用CSS停止覆盖与鼠标的交互:
#tri-overlay{
pointer-events: none;
}
当一个元素出现在鼠标下时,一些浏览器会立即说它刚刚将上一个元素放在鼠标下
参考:
借用Archer的示例布局:
$(“#元素2”)。悬停(函数(){
$(“#元素2覆盖”).show();
},
函数(){
$(“#元素2覆盖”).hide();
});代码>
#元素2{
背景颜色:绿色;
}
#元素2叠加{
指针事件:无;
背景颜色:黄色;
显示:无;
}
.举例{
高度:100px;
位置:绝对位置;
排名:0;
宽度:100px;
}
.例2{
左:20px;
}
您可以使用堆栈片段创建一个堆栈吗?我假设#tri overlay
覆盖#triangle
,从而否定悬停事件,使其再次隐藏,从而使悬停事件再次发生。请发布您的html,以便我们看到正在发生的事情。代码片段是有效的。除非代码片段以相关方式显示问题的实际情况,否则很难提供帮助。我删除了我的答案,因为它与我的答案无关。“不起作用”有点含糊不清。在什么情况下它不工作?它仍然保持闪烁,就像没有指针事件一样。显示无和块之间仍然存在冲突。当我检查元素时,你会看到“显示”正在从“无”切换到“块”并快速返回。你使用的浏览器是什么?你有一个工作模型来试用吗?我刚刚在一个实际的例子(来自Archer,没有他的修复)上试过,效果很好。你确定应用正确吗?(上面添加了示例)