2013-03-18 2 views
0

я делаю очень простую анимацию, так же, как это:JQuery одушевленные с процентами

$("article").animate({ 
    left:"-=70" 
},1000) 

это работает, он вычитает 70px из текущего «левого» значения. но проблема, мне нужно, что быть процент:

$("article").animate({ 
    left:"-=70%" 
},1000) 

Конечно, это не работает. Любая работа вокруг?

Спасибо!

EDIT: Добавлена ​​jsfiddle:

http://jsfiddle.net/ZsU37/

+0

что нужно вычислить требуемое значение с использованием ширины? – benzonico

+0

Вы можете рассчитать примерно, сколько пикселей на 70% основано, возможно, на ширине его родительского элемента, но я не уверен, что именно вы хотите 70%. Это текущая позиция? Ширина родительского? –

ответ

1

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

$("article").animate({ 
    left: parseInt($(this).css('left'),10)*0.3 
},1000) 

Объясняя: $(this).css('left') должен получить текущее значение, подобное 125px, которое проходит через parseInt, чтобы удалить часть px и умножить на 0,3, чтобы получить 30% (предположим, это то, что вы подразумеваете под -70 %)

Редактировать: См. Скрипку, которая работает здесь http://jsfiddle.net/demaf/. Есть примечание:

  • , поскольку я использую обработчик щелчка, я больше не может использовать this, поэтому я изменил к $('article').
  • элемент для анимации должен иметь начальное значение слева, который не равен нулю (в противном случае математике даст значение 0, и ни анимации не происходит)
  • элемент должен использовать значение left, следовательно, должна быть position-е изд соответственно
+0

выглядит хорошо, но он падает, проверьте настройки jsfiddle, которые у меня установлены. И «левый» прямо сейчас равен 0, делая «left: -70%» перемещает его влево, а «left: 30%» перемещает его вправо. но это не важно, конечно. – monxas

+0

расширен с примером. Для того, чтобы этот метод работал «слева», сначала нужно иметь явное ненулевое значение. – hexblot

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