Как я могу создать "нелинейную" траекторию, используя jQuery.animate ()? - PullRequest
1 голос
/ 11 февраля 2011

Я пытаюсь анимировать элемент из положения A в положение B, но я не хочу, чтобы он проходил линейно между каждой точкой, я хотел бы иметь своего рода "параболическую" траекторию.

Могу ли я вообще использовать jQuery.animate ()?

Или я должен вручную кодировать его с нуля, используя setInterval ()?

Спасибо!
Даниэль

Ответы [ 2 ]

8 голосов
/ 11 февраля 2011

Вы можете создать свои собственные функции "замедления" на jQuery.easing, например, эта функция будет аппроксимировать кривую синуса более чем на 90 градусов

jQuery.easing.sin90 = function(p, n, firstNum, diff) {
    return Math.sin(p * Math.PI / 2) * diff + firstNum;
};

p - это число от 0 до 1, представляющеепроцент времени анимации, n - это фактическое время, затраченное на эту анимацию, а firstNum и diff немного вводят в заблуждение, кажется, что в какой-то момент это будет принимать начальное / конечное значение, но теперь всеФункции замедления просто нормализуют значение p, поэтому firstNum = 0 и diff = 1

Я собрал простую скрипку , показывающую использование смягчения по каждому свойству и некоторых функций sin / cos для анимации divв кругах, используя jQuery.

2 голосов
/ 11 февраля 2011
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...