Javascript DIV变得不可见,但仅在chrome中缩放内容时仍保持可点击状态
我遇到过这样一种情况:DIV元素似乎随机变得不可见,而仍然可以单击。这只发生在chrome中,我无法将问题追溯到特定的css设置。我希望你们中的一位能够认识到这个问题,并就可能的原因提出建议 我有一个例子。该页面显示正在播放的youtube视频,底部有一个绝对位置的div,其中包含控件。当窗口超过一定大小时,控件将不可见 复制错误Javascript DIV变得不可见,但仅在chrome中缩放内容时仍保持可点击状态,javascript,jquery,css,scaletransform,Javascript,Jquery,Css,Scaletransform,我遇到过这样一种情况:DIV元素似乎随机变得不可见,而仍然可以单击。这只发生在chrome中,我无法将问题追溯到特定的css设置。我希望你们中的一位能够认识到这个问题,并就可能的原因提出建议 我有一个例子。该页面显示正在播放的youtube视频,底部有一个绝对位置的div,其中包含控件。当窗口超过一定大小时,控件将不可见 复制错误 只发生在铬合金中 打开页面(视频开始播放)。如果没有显示控件,则缩小页面大小,直到控件可见。如果控件已经可见,则将页面调整得更大,直到控件消失 当控件消失时,它们是
- 只发生在铬合金中
- 打开页面(视频开始播放)。如果没有显示控件,则缩小页面大小,直到控件可见。如果控件已经可见,则将页面调整得更大,直到控件消失
- 当控件消失时,它们是不可见的,但仍然可以单击(悬停它们会使光标发生变化)
- 似乎视频位于按钮上方,导致按钮不可见,但不知何故,它们仍然可以被单击
<div class="container" style="width: 100%; height: 100%;" >
<div class="wrapper" style="width: 1080px; height: 720px;">
<div class="player">
// videos element.
</div>
<div class="controls">
<div class="control"></div>
<div class="control"></div>
<div class="control"></div>
</div>
</div>
</div>
//视频元素。
- 容器被拉伸以占据屏幕的100%宽度和100%高度
- 包装器元素是绝对定位的,具有1080*720的固定宽度/高度,但经过变换(缩放),以使其尺寸在适合容器内部和保持纵横比的同时变得尽可能大。此缩放是在调整窗口大小时完成的
- 控件绝对位于播放器元素上方。整个控件div消失(不仅仅是单个控件元素)。但是,当应用css鼠标悬停效果时,它们仍然会触发。而onclick事件仍在发生李>
- 当显示图像而不是视频时,该错误不会发生
- 绝对定位div
- 变换尺度
- 普通视频元素/youtube视频iFrame(在我的案例中,两者都会发生)
好的,我在一个最小的html/js页面中重现了这个问题(请参阅)。我无法将其放在JSFIDLE上,因为您无法调整JSFIDLE输出帧的大小,使其足以重现错误。我找到了问题所在,发现当我删除
overflow-x:hidden时代码>和溢出-y:隐藏代码>从player元素开始,控件DIV不再不可见。然而,如果我这样做,这意味着当内容溢出播放器元素时,它将不会被隐藏。有人知道为什么溢出设置会导致控件div消失但不会变得不可读取,以及如何解决吗?好的,我发现问题是由溢出:隐藏玩家元素上的代码>。通过删除溢出:隐藏代码>设置问题已排除
而不是删除溢出:隐藏代码>我也可以使用:转换:translate3d(0,0,0)
但是,我仍然不知道为什么会出现这个问题,以及为什么上面的方法会解决它。我刚刚在Chrome 70中遇到了完全相同的问题。事实上,添加转换修复了它…另一个确认:溢出:隐藏和缩放转换的某种组合导致了Chrome中元素的消失。添加变换:translate3d(0,0,0);到溢出的元素:hidden阻止元素消失。问题只发生在Chrome上(在Mac上;没有测试Windows)。