Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery.show()/.hide()一直闪烁_Javascript_Jquery_Css_Hide_Show - Fatal编程技术网

Javascript jQuery.show()/.hide()一直闪烁

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覆盖将显示,但会一直闪烁,因为它与css中的“display:none”有冲突。他不断地从“display:none”转到“display:block”,这会导致闪烁效果。我如何避免这种冲突

我正在使用下面的代码

$(函数(){
$('#三角形')。悬停(函数(){
$('#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,没有他的修复)上试过,效果很好。你确定应用正确吗?(上面添加了示例)