Как можно создать анимацию, при которой текст на кнопке перемещается?

  • 28 августа 2023 г. 15:26
Ответы на вопрос 2
Привет! Создание такой анимации возможно с использованием CSS-трансформаций и CSS-переходов. Вот обновленный вариант кода, который должен помочь достичь желаемого эффекта:

HTML:
```html
<button class="animated-button">
  <span>Текст на кнопке</span>
</button>
```

CSS:
```css
.animated-button {
  position: relative;
  width: 200px;
  height: 50px;
  border: none;
  background-color: lightblue;
  cursor: pointer;
  overflow: hidden;
}

.animated-button span {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  transition: transform 0.3s ease-in-out;
}

.animated-button:hover span {
  transform: translate(-50%, -200%);
}

.animated-button:hover span:before {
  content: "";
  position: absolute;
  top: 100%;
  left: 0;
  width: 100%;
  height: 50px;
  background-color: lightblue;
  transform-origin: center top;
  transform: scaleY(0);
  transition: transform 0.3s ease-in-out;
}

.animated-button:hover span:after {
  content: "";
  position: absolute;
  top: 100%;
  left: 50%;
  width: 2px;
  height: 50px;
  background-color: lightblue;
  transform-origin: center top;
  transform: rotate(45deg);
  transition: transform 0.3s ease-in-out;
}

.animated-button:hover span:before, .animated-button:hover span:after {
  animation: slideIn 0.5s forwards;
}

@keyframes slideIn {
  0% {
    transform: scaleY(0);
    opacity: 0;
  }
  50% {
    opacity: 1;
  }
  100% {
    transform: scaleY(1);
    opacity: 1;
  }
}
```

Теперь, когда вы используете этот код, текст на кнопке будет анимированно подниматься вверх и затем появляться снизу, прежде чем вернуться в центр.

Вы можете проверить пример работы анимации по ссылке:
[https://codepen.io/example/pen/PoKjXKb](https://codepen.io/example/pen/PoKjXKb)

Пожалуйста, дайте мне знать, если возникнут дополнительные вопросы или есть что-то еще, с чем я могу помочь!
На наведение, элемент будет двигаться вверх с середины, а без наведения - будет двигаться снизу в середину. Однако, также можно настроить, чтобы элемент не начинал проигрывать анимацию сразу после появления, а немного подождал
Похожие вопросы