2012-05-10 5 views
6

Я использую анимацию CSS3, и я хочу, чтобы я мог перейти к определенному месту в анимации. Например, если CSS выглядит следующим образом (и делать вид, что я использовал все соответствующие префиксы):Как начать анимацию CSS3 в определенном месте?

@keyframes fade_in_out_anim { 
    0% { opacity: 0; } 
    25% { opacity: 1; } 
    75% { opacity: 1; } 
    100% { opacity: 0; } 
} 
#fade_in_out { 
    animation: fade_in_out_anim 5s; 
} 

, то я хотел бы быть в состоянии остановить анимацию, и перенести его на 50% отметки. Я думаю, что идеальный JavaScript будет выглядеть примерно так:

var style = document.getElementById('fade_in_out').style; 
style.animationPlayState = 'paused'; 

// Here comes the made up part... 
style.animation.moveTo('50%'); // Or alternately... 
style.animationPlayPosition = '50%'; 

Кто-нибудь знает способ, чтобы это произошло (надеюсь, в Webkit)?

+0

Можете ли вы предоставить более подробную информацию о том, что вы цель заключается? Потому что, если вы просто хотите начать анимацию на полпути, я бы рекомендовал две анимации, начиная с 50% и один полный эффект, а затем выбирать между ними с помощью классов. – OverZealous

+0

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

ответ

18

Мы можем использовать имущество animation-delay. Обычно это задерживает анимацию в течение некоторого времени, и, если вы установите animation-delay: 2s;, анимация начнется через две секунды после того, как вы применили анимацию к элементу. Но, вы также можете использовать его, чтобы заставить его начать играть анимацию с определенным временным сдвигом, используя отрицательное значение:

.element-animation{ 
animation: animationFrames ease 4s; 
animation-delay: -2s; 
} 

http://default-value.com/blog/2012/10/start-css3-animation-from-specified-time-frame/

+2

Это должен быть выбранный ответ. Его легко реализовать и понятно. – Adam

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