Как да направите гладко движение

Как да накараш обект да се движи плавно? Не мога да взема опцията jQuery, не ми трябва за javascript.

Ето как е тук, например: otvety.google.ru/answer/, в блока „Популярни теми“.

Разгледах кода на jQuery, не намерих нищо там, там не всичко е толкова отворено.

Първо реших да практикувам с Javascript: преместете div плавно

Първо направих нещо подобно:

t е времето, необходимо за изминаване на разстояние d, в секунди

t1 - начален час

Ето извадка от кода:

Но не е така, не е толкова гладко, колкото в Google Answers.

След това се опитах да добавя ускорение:

Това също не проработи.

Кажи ми ако знаеш.

Не съм се задълбочил много в кода, предполагам: Може би говорите за облекчаване. Ако представим времето от началото на анимацията до края като диапазон от 0 до 1, а началната позиция на обекта (или друго свойство) и края като диапазон от 0 до 1, тогава функцията на ising е функция, която дава на всяка точка от първия диапазон точка от втория.

В най-простия случай функцията ising връща получената стойност без промени (връща 0 за началния момент от време и 1 за крайния). В този случай обектът се движи строго линейно без ускорения и забавяния, поради което движението изглежда рязко и неестествено.

За да придадете на анимацията по-плавен вид, трябва да симулирате ускорение. В jQuery функцията ising по подразбиране е (опростена):

Тези. използва се синусоидална зависимост.

Ето примери за други функции за облекчаване, които се предоставят от приставка на трета страна и не са част от jQuery: www.lemonsanver.com/jQuery/easingAnimationPlugin.html

За да използвате същитеметод на работа навсякъде, трябва да организирате процеса по следния начин: 1) В началото на анимацията нейната продължителност е известна и началният час на анимацията се записва 2) Крайната стойност на параметъра, който се анимира (или няколко), също е известна, първоначалната им стойност се записва. 3) Функцията за анимация (таймер или цикъл) се извиква периодично. От текущото време, началния час на анимацията и необходимата продължителност, той намира времето t - число от 0 до 1. 4) t се предава на функцията за облекчаване 5) Текущата стойност се изчислява от получената стойност и данни за началните и крайните стойности на параметрите. 6) Стъпка 3) се повтаря, докато изтече времето за анимация.