我想要实现的目标:
我试图在悬停父对象时更改子 CSS 动画。但是,由于某种原因,它不起作用。
解释:
.front-ball 从一开始就应用了 hvr-wobble-vertical。然后,我希望动画在悬停其父元素 .wbutton 时更改为 .front-ball 缩放动画。
HTML:
<a class="wbutton img-responsive center-block" role="button">
<img class="front-logo" src="img/logos/logowork_03.png" />
<img class="front-ball" src="img/logos/logowork_09.png" />
</a>
CSS:
.wbutton:hover > .front-ball {
-webkit-transform: scale(1.1);
transform: scale(1.1);
}
.front-ball {
display: inline-block;
vertical-align: middle;
-webkit-transform: translateZ(0);
transform: translateZ(0);
box-shadow: 0 0 1px rgba(0, 0, 0, 0);
-webkit-backface-visibility: hidden;
backface-visibility: hidden;
-moz-osx-font-smoothing: grayscale;
-webkit-animation-name: hvr-wobble-vertical;
animation-name: hvr-wobble-vertical;
-webkit-transition-property: transform;
transition-property: transform;
-webkit-animation-duration: 1s;
animation-duration: 1s;
-webkit-animation-timing-function: ease-in-out;
animation-timing-function: ease-in-out;
-webkit-animation-iteration-count: infinite;
animation-iteration-count: infinite;
}
@-webkit-keyframes hvr-wobble-vertical {
16.65% {
-webkit-transform: translateY(8px);
transform: translateY(8px);
}
33.3% {
-webkit-transform: translateY(-6px);
transform: translateY(-6px);
}
49.95% {
-webkit-transform: translateY(4px);
transform: translateY(4px);
}
66.6% {
-webkit-transform: translateY(-2px);
transform: translateY(-2px);
}
83.25% {
-webkit-transform: translateY(1px);
transform: translateY(1px);
}
100% {
-webkit-transform: translateY(0);
transform: translateY(0);
}
}
@keyframes hvr-wobble-vertical {
16.65% {
-webkit-transform: translateY(8px);
transform: translateY(8px);
}
33.3% {
-webkit-transform: translateY(-6px);
transform: translateY(-6px);
}
49.95% {
-webkit-transform: translateY(4px);
transform: translateY(4px);
}
66.6% {
-webkit-transform: translateY(-2px);
transform: translateY(-2px);
}
83.25% {
-webkit-transform: translateY(1px);
transform: translateY(1px);
}
100% {
-webkit-transform: translateY(0);
transform: translateY(0);
}
}
很明显,我正在尝试一次使用 2 个动画/过渡,但我不知道达到我想要的效果的正确方法是什么。
最佳答案
你可以再做一个keyframes
处理 scale animation
并在悬停时替换 hvr-wobble-vertical
使用您的新关键帧
.wbutton:hover > .front-ball {
-webkit-transform: scale(1.1);
transform: scale(1.1);
-webkit-animation-name: hve-scale;
animation-name: hve-scale;
-webkit-animation-iteration-count: 1;
animation-iteration-count: 1;
}
@-webkit-keyframes hve-scale {
0% {
-webkit-transform: scale(1);
}
100% {
-webkit-transform: scale(1.1);
}
}
@keyframes hve-scale {
0% {
transform: scale(1);
}
100% {
transform: scale(1.1);
}
}
关于html - 在父悬停时更改子动画/过渡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37511074/