Вы можете создать свои собственные функции "замедления" на 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.