2012-03-19 4 views
47

Я пытаюсь получить свойство анимации CSS, чтобы остаться после завершения, возможно ли это?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> 
+0

Является ли [w3schools] (http://www.w3schools.com/cssref/css3_pr_keyframes.asp) устаревшим? В нем говорится, что Chrome и FireFox поддерживают только альтернативы. – iambriansreed

+3

@iambriansreed: Я всегда предполагаю, что это :) – BoltClock

+3

@iambriansreed даже не нажимают результаты поиска w3schools. Если вы случайно это сделаете, отложите взгляд от монитора и нажмите кнопку «Назад» на вашей мыши. – doug65536

ответ

92

Я думаю, что вы ищете animation-fill-mode CSS3 собственности

https://developer.mozilla.org/en/CSS/animation-fill-mode

Мультипликация-фасовочно-режим CSS свойство определяет, как CSS анимация должна применить стили к своей цели до и после его выполнения.

для вашей цели просто попытаться установить

h2 { 
    animation: fadeIn 1s ease-in-out 3s; 
    animation-fill-mode: forwards; 
} 

Установку вперед значение «цель будет сохранять вычисленные значения, установленные последним ключевым кадром, возникающий при исполнении»

+1

Спасибо, Фабрицио, это здорово, я приму этот ответ. Просто одно странное дело, что я задаюсь вопросом, знаете ли вы что-нибудь о - на iOS (ничего не тестировалось), обратный отсчет до простоты приостанавливается всякий раз, когда я прокручиваю, например. если я начну прокручивать сразу, когда страница загружается, она не исчезает. Но когда я STOP прокручиваю, 3s начинает отсчет. Является ли это просто поведением iOS по умолчанию? благодаря – SparrwHawk

6

В дополнении к answer от @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>

0

У меня было что-то подобное происходит со мной. Я добавил положение: относительно элемента, который был анимированным, и который исправил его для меня.

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