【发布时间】:2019-12-23 03:44:51
【问题描述】:
我已经成功地让两个图像在悬停时像卡片一样翻转。使用过渡和变换样式。它适用于移动设备(iPhone;chrome 和 safari)。我究竟做错了什么?非常感谢任何指导。
我已经查看了 StackOverflow 上以前的帖子,但我发现的内容对我的情况没有帮助。
<div class="flip-box">
<div class="flip-box-inner">
<div class="flip-box-front">
<img src="./resources/images/green.jpg" alt="" style="width:421px;height:552px">
</div>
<div class="flip-box-back">
<img src="./resources/images/brown.jpg" alt="" style="width:421px;height:552px">
</div>
</div>
</div>
.flip-box {
background-color: transparent;
width: 421px;
height: 552px;
border: 0px;
-webkit-perspective: 1000px;
-moz-perspective: 1000px;
-ms-perspective: 1000px;
perspective: 1000px;
}
.flip-box-inner {
position: relative;
width: 100%;
height: 100%;
text-align: center;
transition: transform 0.8s;
-webkit-transform-style: preserve-3d;
-moz-transform-style: preserve-3d;
-ms-transform-style: preserve-3d;
transform-style: preserve-3d;
}
.flip-box:hover .flip-box-inner {
-webkit-transform: rotateY(180deg);
-moz-transform: rotateY(180deg);
-o-transform: rotateY(180deg);
-ms-transform: rotateY(180deg);
transform: rotateY(180deg);
transform-style: preserve-3d;
}
.flip-box-front, .flip-box-back {
position: absolute;
width: 100%;
height: 100%;
backface-visibility: hidden;
-webkit-backface-visibility: hidden;
-moz-backface-visibility: hidden;
-o-backface-visibility: hidden;
-ms-backface-visibility: hidden;
}
.flip-box-front {
transform-style: preserve-3d;
}
.flip-box-back {
-webkit-transform: rotateY(180deg);
-moz-transform: rotateY(180deg);
-o-transform: rotateY(180deg);
-ms-transform: rotateY(180deg);
transform: rotateY(180deg);
transform-style: preserve-3d;
}
我预计卡片会在移动设备上来回翻转,但它只转换一次。
【问题讨论】:
-
您如何在移动设备上测试悬停?因为悬停标识鼠标悬停。在移动设备中,这种操作有更好的选择器
-
@AlyfMendonça 我正在手机上的浏览器中进行测试。我目前不知道其他选择器。你能建议从哪里开始吗?谢谢。
-
当然。你什么时候想在手机上做动画?当用户点击卡片时?如果是这种情况,您也可以尝试使用:focus。这里有更多关于 css 选择器的内容。 w3schools.com/cssref/css_selectors.asp
-
可能导致问题的另一件事是:在移动设备中,当您传递一个元素时,它只会在您单击另一个元素时失去悬停。在桌面上,当悬停被移除时更容易注意到。也许在这种情况下,理想的做法是将完整动画置于悬停状态(无需等待用户移动鼠标来取消点击卡片)
-
@AlyfMendonça 感谢您让我看到焦点选择器,让我更深入地挖掘。万事如意
标签: css transform transition