css:不(:hover)调试关键帧

rbpvctlc  于 2023-03-05  发布在  其他
关注(0)|答案(1)|浏览(196)

我有这个问题,我的非悬停动画返回到它的正常状态只有一次,之后它的bug显示在下面的gif,不能正常工作。我想有一个替代品,而不是我现在使用的悬停相反,但没有运气找到任何东西。任何建议?

.expanding-button {
  width: 7rem;
  height: 7rem;
  background-color: blue;
  color: white;
  border-radius: 50%;
  cursor: pointer;
  transition: all 0.5s ease-in-out;
}

.button__img {
  width: 5rem;
  height: auto;
  transition: all 1s ease-in-out;
}


.expanding-button:hover .button__img {
  animation-delay: 1s;
  animation: spin 1s forwards, move-left 1s forwards;
  transform-origin: center left;
}


.expanding-button:hover {
  background-color: darkblue;
  width: 700px;
  height: 100px;
  border-radius: 50px;
}

.expanding-button:not(:hover) .button__img {
  animation: move-right 0.5s forwards;
}

@keyframes spin {
  0% {
    transform: rotate(0deg);
  }

  100% {
    transform: rotate(360deg);
  }
}

@keyframes move-left {
  0% {
    transform: translateX(0);
  }

  100% {
    transform: translateX(-18rem);
  }
}

@keyframes move-right {
  0% {
    transform: translateX(-18rem);
  }

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

tcomlyy6

tcomlyy61#

只需使用过渡:

.expanding-button {
  width: 7rem;
  height: 7rem;
  background-color: blue;
  color: white;
  border-radius: 50%;
  cursor: pointer;
  position: relative;
  transition: all 0.5s ease-in-out;
}

.button__img {
  width: 5rem;
  height: auto;
  position: absolute;
  left: 5px;
  transition: all .5s ease-in-out;
}


.expanding-button:hover .button__img {
  transform: rotate(360deg);
  transform-origin: center left;
}

.expanding-button:hover {
  background-color: darkblue;
  width: 700px;
  height: 100px;
  border-radius: 50px;
}

按照你的意愿固定你自己的左边和上边的位置,你也可以用flex代替position,这样可以像以前一样保留你的上下文,但是也需要修改你的html。

相关问题