是否可以制作带有动画和悬停比例的html div?

时间:2019-01-11 17:04:46

标签: html css animation hover css-animations

我尝试将div作为链接到另一个子页面的按钮。我给它们设置了动画,以便它们在网站上旋转。现在,我想制作一个缩放按钮的悬停效果。但是似乎它没有被认可。当我注释掉动画时,它就起作用了。有没有办法获得动画和悬停效果?

谢谢!

.animation-links div {
  background: #444;
  margin: 10px;
  text-align: center;
  height: 100px;
  transform: rotateY(90deg);
  transform-origin: center;
}
#animation-1 {
  box-sizing: border-box;
  background: linear-gradient(90deg, #03a9f4, #f441a5, #ffeb3b, #03a9f4);
  background-size: 400%;
  animation-name: animated;
  animation-duration: 1s;
  animation-fill-mode: forwards;
  animation-delay: 0.5s;
} animation-delay: 0.5s;


@keyframes animated {
  0% {
    transform: rotateY(90deg);
  }

  100% {
    transform: rotateY(0);
  }
}
}

.animation-links div:hover {
    transform: scale(1.10);
  }

1 个答案:

答案 0 :(得分:0)

这是因为animation-fill-mode: forwards;

如果animation-fill-mode的值不为null,则动画结束时将不应用css属性值。

因此,我从animation-fill-mode: forwards;样式规则中删除了#animation-1,并从transform: rotateY(90deg);样式规则中删除了.animation-links div。在花括号之外还设置了一些额外的{和样式。我也删除了那些。

请参见下面的代码段

.animation-links div {
  background: #444;
  margin: 10px;
  text-align: center;
  height: 100px;
  transform-origin: center;
}
#animation-1 {
  box-sizing: border-box;
  background: linear-gradient(90deg, #03a9f4, #f441a5, #ffeb3b, #03a9f4);
  background-size: 400%;
  animation-name: animated;
  animation-duration: 1s;
  /*animation-fill-mode: forwards;*/
  animation-delay: 0.5s;
  transition: transform 1s ease;
}


@keyframes animated {
  0% {
    transform: rotateY(90deg);
  }

  100% {
    transform: rotateY(0);
  }
}

.animation-links div:hover {
    transform: scale(2);
  }
<div class="animation-links">
  <div id="animation-1">Animation 1</div>
</div>

您也可以here对其进行测试。