Я пытаюсь сохранить свойство анимации CSS после завершения, возможно ли это?
Это то, чего я пытаюсь достичь ...
Элемент должен быть скрыт, когда пользователь попадает на страницу, через 3 секунды (или что-то еще) он должен исчезать, а после завершения анимации он должен оставаться там.
Вот попытка скрипки ... http://jsfiddle.net/GZx6F/
Вот код для сохранения ...
<h2>Test</h2>
<style>
@keyframes fadeIn {
0% {
opacity: 0;
}
100% {
opacity: 0.9;
}
}
h2 {
animation: fadeIn 1s ease-in-out 3s;
}
</style>
Я знаю, как это сделать с помощью jQuery ... вот так ...
<h2>test</h2>
<script>
$(document).ready(function(){
$('h2').hide().delay(3000).fadeIn(3000)
});
</script>
css
css-animations
SparrwHawk
источник
источник
Ответы:
Я думаю, вы ищете
animation-fill-mode
свойство CSS3https://developer.mozilla.org/en/CSS/animation-fill-mode
для вашей цели просто попробуйте установить
h2 { animation: fadeIn 1s ease-in-out 3s; animation-fill-mode: forwards; }
Установка форвардного значения «цель будет сохранять вычисленные значения, установленные последним ключевым кадром, обнаруженным во время выполнения»
источник
В дополнение к ответу на @Fabrizio Calderan , это должно быть сказано , что вы можете даже применить
animation-fill-mode
свойствоforwards
непосредственноanimation
. Таким образом, также должно работать следующее:@keyframes fadeIn { 0% { opacity: 0; } 100% { opacity: 0.9; } } h2 { opacity: 0; animation: fadeIn 1s ease-in-out 3s forwards; }
<script src="//cdnjs.cloudflare.com/ajax/libs/prefixfree/1.0.7/prefixfree.min.js"></script> <h2>Test</h2>
источник
Как анимировать элемент и заставить его оставаться в процессе анимации:
// Beggin
#box { /* Give it a width, a height and a background so can see it */ width: 200px; height: 200px; /* Unimportant styling */ box-shadow: 0 0 10px 0 rgba(0, 0, 0, .4) inset; border-radius: 7px; background: linear-gradient(to bottom, #fff 30%, #fcfcfc 40%, #f8f8f8 50%, #f0f0f0 100%); /* Starts here: */ opacity: 0; animation: yourName 2800ms ease-in-out 0s forwards; } @keyframes yourName { 0% /* (from) */ { opacity: 0; } 100% /* (to) */ { opacity: 1; } }
<div id="box"></div>
источник
Со мной случилось нечто подобное. Я добавил положение: относительно элемента, который был анимирован, и это исправило его для меня.
источник