【发布时间】:2018-08-11 05:15:54
【问题描述】:
所以我能够创建一个“翻牌”元素;但是,我的问题是我正在尝试使用 transform: scale() 缩放整个元素,以便在旋转大约一半时,我希望元素开始扩展到更大的尺寸/比例。
只是不确定我是使用动画、多个动画还是仅使用过渡...或过渡 + 动画...只是有点困惑什么是最有效的方法。
我尝试了动画 + 过渡,如下图所示,但它非常有问题,而且表现得不可预测。
html, body {
background: #f2edea;
height: 100%;
width: 100%;
}
img {
width: 100%;
max-height: 100%;
}
.flipcard {
width: 150px;
height: 200px;
margin: auto;
top: 20%;
position: relative;
box-shadow: 5px 5px 20px #c4c4c4;
border: 3px solid #b8b8ba;
border-radius: 5px;
background: pink;
transform-style: preserve-3d;
transition: transform 2s;
}
@keyframes grow {
from {
transform: scale(0);
}
to {
transform: scale(2);
}
}
.flipcard:hover {
transform: rotateY(180deg);
animation: grow 1s;
}
.front-side {
height: 100%;
width: 100%;
position: relative;
backface-visibility: hidden;
}
.back-side {
width: 100%;
height: 100%;
transform: rotateY(180deg);
position: absolute;
top: 0;
border-radius: 3px;
}
<div class='flipcard'>
<div class='front-side'>
<img src='https://pre00.deviantart.net/4121/th/pre/i/2018/059/6/7/brigitte_by_raikoart-dc4kzas.png'>
</div>
<div class='back-side'>
<img src="https://img00.deviantart.net/e0ec/i/2017/297/8/c/mercy_by_raikoart-dbrm54b.png">
</div>
</div>
【问题讨论】:
-
动画完成后的期望行为是什么?卡在悬停时保持翻转状态并在未悬停时立即恢复到原始状态?悬停时卡片翻转,未悬停时反转动画?卡片翻转和增长,然后一旦动画完成,即使你仍然悬停也会重置?
-
感谢您的提问;我应该澄清一下。本质上,我会将鼠标悬停在卡片上,它会翻转,然后开始缩放到更大的尺寸。仍然悬停时,卡片将保持指定的最大缩放尺寸,并且卡片背面(理想情况下)将写字。只要我将鼠标悬停在卡片上,我就不希望动画重置/反转。
标签: html css css-transitions css-animations