JavaScript로 슬라이더 모듈을 빌드하려고합니다. 모든 것이 작동하지만 애니메이션은 선형이며 부드럽거나 자연스럽지 않습니다. 나는 이징 방정식을 생각해 봤지만 어디로 가고 있는지 확신하지 못합니다.JavaScript 애니메이션 (여유 공간 사용)
function animate(elem, style, unit, from, to, time) {
if (!elem) return;
var start = new Date().getTime(),
timer = setInterval(function() {
var step = Math.min(1,(new Date().getTime()-start)/time);
elem.style[style] = (from+step*(to-from))+unit;
if (step == 1) clearInterval(timer);
},25);
elem.style[style] = from+unit;
}
및 완화 기능 from here :
/**
* @param {Number} t The current time
* @param {Number} b The start value
* @param {Number} c The change in value
* @param {Number} d The duration time
*/
function easeInCubic(t, b, c, d) {
t /= d;
return c*t*t*t + b;
}
난 그냥 값을 전달 시도
은 이미이 같은 있습니다
elem.style[style] = easeInCubic(start, from, to, time) + unit;
다음
내가
from here을 빌려 애니메이션 기능입니다
하지만 분명히, 그건 틀렸어. (나는 아마 지 수학에, 나는 추측하고있다.)
두 항목을 어떻게 함께 연결합니까?
[여기] (http://www.robertpenner.com/easing/)에서 기존의 완화 기능을 사용할 수 있습니다. –
jsFiddle 있어요? – starbeamrainbowlabs