Как да направите гладко движение
Как да накараш обект да се движи плавно? Не мога да взема опцията 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) се повтаря, докато изтече времето за анимация.