2014-01-28 8 views
2

Если у меня есть что-то вродеJquery анимировать(): хранение пар ключей CSS/значение

$('#element').animate({'top':'-140px'},2000); 

Можно ли заранее определить кучу пар ключ/значение, так или иначе, так что я могу затем просто использовать

$('#element').animate(firstPos,2000).animate(secondPos,2000); 

Заранее спасибо.

+1

'var firstPos = {ключ: объект}; var secondPos = {ключ: значение} '? –

+0

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

+0

Спасибо, ребята. @ Карл, похоже, не работает? – Inigo

ответ

3

Смотрите этот пример:

http://jsfiddle.net/3Fyb8/

var firstPos= {'top':'40px'}; 
var secondPos= {'top':'80px'}; 
$('#element').animate(firstPos,2000).animate(secondPos,2000); 
+0

Это отлично работает, спасибо. Я попробовал это, но не понял, что на моей странице была другая ошибка. Благодаря! – Inigo

0

Короткий ответ: да. Вы можете определить объектный литерал, как

firstPos = { 
    top: '-140px' 
}; 

secondPos = { 
    top: '0px' 
}; 

, а затем передать это в ваш вызов animate(). Тем не менее, вы, вероятно, не хотите связывать свои анимированные звонки, а скорее отключаете анимацию secondPos после завершения первого. Таким образом, вы хотели бы выполнить вторую анимацию внутри обратного вызова для первого, как:

$("#element").animate(firstPos, 2000, function() { $(this).animate(secondPos, 2000); }) 

Может также хотят читать на stop()

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