2015-04-17 6 views
4

Я замирание в некоторых кнопках с @keyframe анимации с непрозрачности: 0 непрозрачности: 1.Как изменить свойство css после анимации @keyframe?

div{ 
    opacity: 1; 
    animation: fadeIn 1s forwards;  
    -webkit-animation: fadeIn 1s forwards; 
} 

@-webkit-keyframes fadeIn { 
    0%{ 
     opacity: 0; 
    }100%{ 
     opacity: 1; 
    } 
} 

@keyframes fadeIn { 
    0%{ 
     opacity: 0; 
    }100%{ 
     opacity: 1; 
    } 
} 

div:hover{ 
    opacity: .5 !important; /* THIS DOES NOT HAPPEN BECAUSE THE OPACITY WAS ANIMATED */ 
    color: red; 
} 

На: парить, я хотел бы изменить непрозрачность .5, но кажется, что после того, свойство анимируется с помощью @keyframe, его нельзя изменить.

Простой пример: http://jsfiddle.net/Lzcedmuq/3/


PS: В реальном веб-приложение, я также масштабирование кнопок так затруднительное мне нужно больше, чем просто для непрозрачности. Мне нужно изменить любое свойство, которое было анимировано. Я могу сделать это с JS-хакером, но я не хочу этого делать.

+0

Вы должны сообщить нам о браузерах, которые вы тестировали на – Vishwanath

+0

Протестировано на Chrome 42 и Safari OSX. Подтвердил, что он работает над FF. – narrowdesign

ответ

6

Отключить анимацию как часть состояния парения:

div:hover{ 
    opacity: .5; 
    -webkit-animation: none; 
    animation: none; 
    color: red; 
} 

Одна из проблем в том, что анимация будет перезапущен, когда концы при наведении курсора мыши.

+0

1+ Умный .. хороший один .. - http://jsfiddle.net/me5zdu2s/ –

1

Это устранило проблему

opacity: 0.5 !important; 

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

Demo

+2

Не работает для меня в Chrome 42. Какой браузер? Я обновляю ссылку jsfiddle, чтобы включить это, хотя, поскольку он чувствует, что это ДОЛЖНО работать. – narrowdesign

+0

Я использую firefox – floor

+0

hmm, поэтому он не работает в chrome, я тестирую другие браузеры сейчас, и я вернусь к вам – floor

Смежные вопросы