2

当我在悬停时使用 webkit 3d 变换时,只有悬停区域的顶部 50% 有效,而底部 50% 则不稳定。我目前正在 Chrome (31.0.1650.63) 上进行测试。它是一个错误吗?有什么解决方法吗?

尝试将鼠标放在 div 的顶部,然后慢慢将其移至底部。

HTML

<div class="hoverArea"></div>
<div class="flip">
    <div class="front">front</div>
    <div class="back">back</div>
</div>

CSS

.hoverArea, .flip, .front, .back {
  width: 200px;
  height: 200px;
  position: absolute;
  top: 0;
  left: 0;
}
.hoverArea {
  z-index: 10;
}
.flip {
  -webkit-transform-style: preserve-3d;
  -webkit-transition: 0.5s;
  -webkit-perspective: 800;
  z-index: 9;
}
.front {
  background-color: #f00;
  -webkit-backface-visibility: hidden ;
}
.back {
  background-color: #f0f;
  -webkit-transform: rotatex(-180deg);
  -webkit-backface-visibility: hidden ;
}
.hoverArea:hover + .flip {
  -webkit-transform: rotatex(-180deg);  
}

http://jsfiddle.net/4P53y/

4

1 回答 1

5

您可以通过删除.hoverArea元素来修复它,而是在元素上应用:hover事件.flip

.flip:hover {
    -webkit-transform: rotatex(-180deg);    
}

演示

如果您仍想使用该.hoverArea元素,则可以使用transform:translateZ(1px);on.hoverArea使其正常运行。它使浏览器更仔细地渲染元素

.hoverArea {
    z-index: 10;
    -webkit-transform:translateZ(1px);
}

演示

于 2014-01-14T16:10:37.133 回答