Линейная анимация при наведении курсора (неполная)

Я новичок в анимации css. Я хочу добиться эффекта, при котором, если я наведу курсор на элемент, сквозная линия медленно исчезнет справа налево. Я уже все это собрал, но когда страница загружается, эффект уже начинается. Поэтому, когда я нахожу на него курсор, ничего не происходит, и я действительно не знаю, где поместить указатель в коде. Также как мне убедиться, что когда я больше не наведу на него курсор, сквозная линия снова заполнится?

@keyframes subMenu{
 0%   { width : 100; }
 100% { width: 0; }
}
.subMenu {
position: relative;
}
.subMenu:after {
content: ' ';
position: absolute;
top: 50%;
left: 0;
width: 100%;
height: 1px;
background: black;
animation-name: subMenu;
animation-duration: 4s;
animation-timing-function: linear;
animation-iteration-count: 1;
animation-fill-mode: forwards; 
}

Заранее спасибо

Вопрос немного расплывчатый, поскольку я не могу представить себе, через что вы проходите. Пожалуйста, поделитесь Codepen, чтобы мы знали лучше. Также я полагаю, вы использовали: после здесь. Я думаю, что вы должны использовать: hover, чтобы эффект появился.

Ajay Kudva 04.08.2018 16:09

Вот гифка проблемы, чтобы прояснить: giphy.com/gifs/ujTtl5xacXpFPWz6yK/fullscreen

Zeger Caes 04.08.2018 17:26

Вы пробовали: hover вместо: after? Поместите все содержимое анимации в .submenu: hover.

Ajay Kudva 04.08.2018 17:42

Да, но это действительно не работает, я буду продолжать пытаться

Zeger Caes 04.08.2018 18:00

Можете ли вы поделиться проектом CodePen, чтобы я мог поиграть с кодом?

Ajay Kudva 04.08.2018 18:03

Спасибо, что нашли время с этим Аджаем. CSS анимации полностью внизу: codepen.io/anon/pen/LBrwLa

Zeger Caes 04.08.2018 20:28
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
CSS: FlexBox
CSS: FlexBox
Ранее разработчики использовали макеты с помощью Position и Float. После появления flexbox сценарий полностью изменился.
0
6
59
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я поигрался с вашим кодом и думаю, что нашел решение.

.subMenu:after {
  content: ' ';
  position: absolute;
  top: 50%;
  left: 0;
  width: 100%;
  height: 1px;
  background: black;
}
.subMenu:hover:after{
    animation-name: subMenu;
  animation-duration: 4s;
  animation-timing-function: linear;
  animation-iteration-count: 1;
  animation-fill-mode: forwards; 
}

Вот CodePen: https://codepen.io/AjayKudva/pen/WKKxWQ

Спасибо, Аджай, еще одна последняя деталь. Если я хочу, чтобы анимация менялась, когда я больше не нахожу на нее курсор. Стоит ли использовать селектор: before? Потому что теперь, когда я перестаю над ним зависать, полоска наполняется мгновенно.

Zeger Caes 05.08.2018 13:14

Я не думаю, что это можно сделать только с помощью CSS. Как и при загрузке веб-страницы, вы хотите, чтобы она проходила по строкам без каких-либо анимаций. Затем при наведении курсора линия должна исчезнуть. Но опять же при выполнении действия mouseout должно происходить обратное. Это приведет к следующему: Когда страница загружается, сквозная строка будет отображаться анимированной через текст. Это нормально для тебя? Также проголосуйте и примите ответ, если вы сочли его полезным.

Ajay Kudva 05.08.2018 13:17

Другие вопросы по теме