2015-03-06 3 views
0

Я совершенно новичок в CSS-анимации, и я хотел смоделировать эффект, найденный на этом сайте: http://pl.playstation.com/psn/. В середине экрана (белый фон) присутствуют некоторые персонажи, и перед ними есть синие символы (крест, круг, квадрат), которые идут вверх и вниз довольно гладко. Как имитировать такой же эффект на примере div? Я просмотрел код их анимации и нашел что-то вроде:Простая анимация с данного сайта

-webkit-animation-duration: 4000ms; 
transition-delay: 1500ms; 
-webkit-animation: infinite alternate ease-in-out; 
-webkit-perspective: 1000; 
transition: opacity 1000ms,transform 1000ms; 

Как заставить элементы перемещаться на основе этого? Нужно ли мне преобразовывать: translate() и давать некоторые значения и как автоматически запускать его, когда кто-то находится на странице?

+0

вы можете использовать 'преобразования: переводить (х, у)' – maioman

+0

Годится поэтому я создал эту скрипку: http://jsfiddle.net/jauo1ayw/ и попытался использовать translate (Y), но не знаю, как сделать анимацию вниз, а затем снова вверх и так далее постоянно, как и на сайт, указанный выше. – Shepherd

+0

Что вы ищете? Вы можете описать его здесь? Или отправьте пример изображения? – jbutler483

ответ

1

Вы можете использовать ключевые кадры для этого - просто не забудьте включить префикс для кросс-браузера!

Идея за ключевыми кадрами в том, что вы можете анимировать элементы очень быстро, используя синтаксис ключевого кадра:

@keyframes Floating { 
    from { 
    transform: translate(0, 0px); 
    } 
    65% { 
    transform: translate(0, 15px); 
    } 
    to { 
    transform: translate(0, -0px); 
    } 
} 

, который будет переводить его, как вы хотите.


DEMO

.floating { 
 
    float: left; 
 
    -webkit-animation-name: Floatingx; 
 
    -webkit-animation-duration: 3s; 
 
    -webkit-animation-iteration-count: infinite; 
 
    -webkit-animation-timing-function: ease-in-out; 
 
    -moz-animation-name: Floating; 
 
    -moz-animation-duration: 3s; 
 
    -moz-animation-iteration-count: infinite; 
 
    -moz-animation-timing-function: ease-in-out; 
 
    animation-name: Floating; 
 
    animation-duration: 3s; 
 
    animation-iteration-count: infinite; 
 
    animation-timing-function: ease-in-out; 
 
    margin-left: 30px; 
 
    margin-top: 5px; 
 
} 
 
@-webkit-keyframes Floatingx { 
 
    from { 
 
    -webkit-transform: translate(0, 0px); 
 
    } 
 
    65% { 
 
    -webkit-transform: translate(0, 15px); 
 
    } 
 
    to { 
 
    -webkit-transform: translate(0, -0px); 
 
    } 
 
} 
 
@-moz-keyframes Floating { 
 
    from { 
 
    -moz-transform: translate(0, 0px); 
 
    } 
 
    65% { 
 
    -moz-transform: translate(0, 15px); 
 
    } 
 
    to { 
 
    -moz-transform: translate(0, -0px); 
 
    } 
 
} 
 
@keyframes Floating { 
 
    from { 
 
    transform: translate(0, 0px); 
 
    } 
 
    65% { 
 
    transform: translate(0, 15px); 
 
    } 
 
    to { 
 
    transform: translate(0, -0px); 
 
    } 
 
}
<img src="http://placekitten.com/g/300/200" class="floating" />

+0

Вот что я искал, thx! – Shepherd

+0

@ Шеперд: спасибо. Но могли бы вы сделать мне одну вещь? Не копируйте и не вставляете это - посмотрите, как он работает, и если вам нужно задавать вопросы о * how *, это работает. :) – jbutler483

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