Art*_*kyi 3 css rotation css3 css-transforms
我想像http://desandro.github.io/3dtransforms/examples/card-01.html那样翻转
但每边都有按钮.所以这是我的HTML
<div class="flip-container">
<div class="flip">
<div class="side front">
<p>front</p>
<button class="front-flip-button">flip</button>
</div>
<div class="side back">
<p>back</p>
<button class="back-flip-button">flip</button>
</div>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
和css
.flip-container{
position: relative;
-webkit-perspective: 800;
width: 500px;
height: 300px;
}
.flip{
position: absolute;
width: inherit;
height: inherit;
-webkit-transform-style: preserve-3d;
-webkit-transition-duration: 500ms;
-webkit-transform: translate3d(0, 0, 0);
border: 1px solid;
}
.side{
position: absolute;
width: inherit;
height: inherit;
-webkit-transform-style: preserve-3d;
-webkit-backface-visibility: hidden;
}
.flip.flipped,
.back{
-webkit-transform: rotate3d(0, 1, 0, 180deg);
}
.back-flip-button,
.front-flip-button{
position: absolute;
left: 0;
top: 0;
}
p{
font-size: 90px;
text-align: center;
}
Run Code Online (Sandbox Code Playgroud)
一切都很好,但是当我使用一些元素时translateZ,后退按钮不可点击.
<div class="flip-container">
<div class="flip">
<div class="side front">
<p>front</p>
<button class="front-flip-button">flip</button>
</div>
<div class="side back">
<p>back</p>
<button class="back-flip-button">flip</button>
</div>
</div>
</div>
<div class="some"></div>
Run Code Online (Sandbox Code Playgroud)
为什么会这样?
应用此
.back-flip-button {
... Your other styles ...
-webkit-transform:translateZ(1px);
-webkit-backface-visibility:hidden;
/* Needs other prefixes to be cross browser */
}
Run Code Online (Sandbox Code Playgroud)
这是因为父元素有自己的堆叠顺序.为了均衡堆叠顺序并将按钮置于顶部,您必须给它一个我使用过的堆叠顺序translateZ.将backface-visibility:hidden使得按钮不会显示在正面
将来我们可以通过将该will-change属性应用于背面来实现此目的