Как анимировать border input'а?

237
13 апреля 2022, 10:00

Есть вот такая форма:

Хочу, чтобы при нажатии на input Имя и E-mail плавно появлялись остальные бордеры, но не знаю как реализовать задумку. Сама проблема в том, что где-то видел как бордеры от нижнего по бокам поднимаются, а потом соединяются сверху в середине и хотелось бы сделать также.

Как такое реализовать?

Answer 1

Один из вариантов - использовать анимацию градиента:

.ani-border {
  padding: 1em;
  border: none; outline: 2px solid transparent;
  background-image: 
  linear-gradient(to bottom, #cacaca 1px, transparent 1px), 
  linear-gradient(to bottom, #cacaca 1px, transparent 1px), 
  linear-gradient(to right, #cacaca 1px, transparent 1px, transparent calc(100% - 1px), #cacaca calc(100% - 1px)), 
  linear-gradient(to top, #cacaca 1px, transparent 1px);
  background-position: -100% 0%, 200% 0%, 0% 100%, 0% 100%;
  background-size: 50% 100%, 50% 100%, 100% 1px, 100% 100%;
  background-repeat: no-repeat;
  transition: background-size .4s ease-out .6s, background-position .6s ease-in;
}
.ani-border:focus {
  background-position: 0% 0%, 100% 0%, 0% 100%, 0% 100%;
  background-size: 51% 100%, 51% 100%, 100% 100%, 100% 100%;
  transition: background-size .4s ease-in, background-position .6s ease-out .4s;
}
<input class="ani-border" placeholder="E-mail">

READ ALSO
Как убрать фото у категорий в woocommerce?

Как убрать фото у категорий в woocommerce?

Нужно сделать так, чтобы у категорий были только названия + стилизовать под свою темуУ стандартных категорий есть фото

160
Правильный адаптив блока со вкладками

Правильный адаптив блока со вкладками

Помогите правивльно адаптировать блокКонкретно с ним какие-то проблемы у меня возникают, всё очень едет стоит поменять разрешения хоть на один...

231
Как выровнять все элементы контейнера с помощью flexbox?

Как выровнять все элементы контейнера с помощью flexbox?

У меня есть контейнер, в котором есть 5 тегов nav (элементов)

214