画布底片z-index存在问题。基本上,当固定位置有2个元素时,一个是块元素而另一个是画布,画布的z-index
是负片,无论什么样,它都会在第二个元素上滚动它的z-index
。
此错误仅发生在Chrome:Mac和PC上。
这是一个HTML示例(问题已缩减):
<ul>
<li><span>test1</span></li>
<li><span>test1</span></li>
<li><span>test1</span></li>
</ul>
<div>
<canvas />
</div>
和CSS
html,body{
height : 150%;
}
ul {
position : fixed;
z-index : -1;
top : 0;
left : 0;
width : 100%;
margin : 0;
padding : 0;
overflow : auto;
li {
float : left;
width : 33%;
height : 100px;
background : red;
position : relative;
list-style: none;
span{
display:block;
position : relative;
}
}
}
div {
position : fixed;
z-index : -2;
top : 0;
left : 0;
canvas{
opacity : 0.5
}
}
我省略了JavaScript,因为我确定这不是问题。
您可以在此jsFiddle
中查看操作中的错误在尝试了多个事情后,这里解决了当前问题,但在其他方面造成了麻烦:
overflow:visible
设置为ul
;
$.fn.slideDown()
。在动画期间,jQuery将overflow
设置为hidden
,从而在动画制作时显示错误。position:relative
和li
的{{1}}更改为其他内容;
span
z-index
上的-2
,canvas
上的-1
;
ul
;
答案 0 :(得分:6)
这似乎是一个Chromium / webkit(或blink)错误,它修复了它,符合您的所有条件,并且不需要对HTML
结构或其他样式进行任何更改:
ul {
/* rest of the styles */
-webkit-transform: translate3d(0,0,0);
}