http://jsfiddle.net/aintnobody/0L1yumpe/
与相同的代码
http://www.aintnobodymusic.com/monkey
问题:在小提琴上,一切正常。在所有情况下,上面的图像都会通过指针事件被忽略:无,并且点击会传递到下面的任何内容。我们可以通过底部两个的事件侦听器来判断这一点,并且由于前 4 个是 youtube iframe 嵌入,我们可以判断是因为点击开始了视频(这些是实时视频,顺便说一句,所以请务必点击中心或您可能会被带到 youtube)。
所以,一切都很好......直到我把它放在一个网站上。我在本地和托管环境中都尝试了四次,我总是得到相同的结果:底部的两个表现如预期,点击穿过图像到下面的 div。但是,如果上面的图片覆盖了 100% 的像素,则 iframe (youtube) 不会注册点击。即使只有一个像素被曝光,它也会按应有的方式点击通过。这就是为什么存在“短”集的原因。这些视频上方的图像比下方的视频窄一个像素。
但是,在 Firefox 中,100% 覆盖的视频不会触发。它在我迄今为止测试过的 Chrome 和 Safari 中运行良好,但在 Firefox 中却不行。
我在任何地方都找不到一个提到这个问题的地方。
我已经进行了一次又一次的测试,以缩小这里发生的情况。
这是youtube的问题吗?火狐的问题?iframe 问题?这可能与 iframe 上缺少源标签有关吗?也许我的文档头部与小提琴的配置有些不同?我也在codepen上尝试过类似的方法,它工作得很好(点击通过)......直到我把它放在一个网站上并使用firefox。
编辑添加:刚刚在codepen上做了简化的情况,点击在那里很好,但不是当我主持时:
http://codepen.io/oompaLoompa/pen/QwqRER
<iframe
class="video full jpgOverVideoFull"
width="200"
height="150"
src="https://www.youtube.com/embed/DEzREJbln-o"
frameborder="0"
allowfullscreen>
</iframe>
<div class="image full jpgOverVideoFull"
style="background-image:url('http://images.nationalgeographic.com/wpf/media-live/photos/000/247/cache/proboscis-monkey-in-tree_24704_600x450.jpg');"
>jpg full vid</div>
<iframe
class="video full pngOverVideoFull"
width="200"
height="150"
src="https://www.youtube.com/embed/DEzREJbln-o"
frameborder="0"
allowfullscreen>
</iframe>
<div class="image full pngOverVideoFull"
style="background-image:url('http://www.whaleoil.co.nz/wp-content/uploads/2012/05/monkey.png');"
>png full vid</div>
和CSS:
.video, .image, {
height:150px;
position: absolute;
font-size:30px;
color:#F2F;
text-align: center;
}
.image {
z-index:1;
pointer-events: none;
background-size: cover;
}
.jpgOverVideoFull {
top:20px;
left:20px;
}
.pngOverVideoFull {
top:190px;
left:20px;
}
.full {
width:200px;
}
.short {
width:199px;
}