5
我需要使用動畫執行JavaScript方法scrollTo(x,y)。我不能'使用jQuery來做到這一點。使用動畫滾動
我需要使用動畫執行JavaScript方法scrollTo(x,y)。我不能'使用jQuery來做到這一點。使用動畫滾動
通過使用window.setTimeout()和window.clearTimeout()調用,您可以在Javascript中動畫(幾乎)任何動畫。見http://www.w3schools.com/js/js_timing.asp
function interpolate(source,target,pos) {
return (source + (target - source) * pos);
}
function easing(pos) {
return (-Math.cos(pos * Math.PI)/2) + 0.5;
}
function scrollTop(duration) {
duration = duration || 1000;
var startY = window.pageYOffset,
start = Number(new Date()),
finish = start + duration;
var interval = setInterval(function() {
var now = Number(new Date()),
pos = (now > finish) ? 1 : (now - start)/duration;
scrollTo(0, interpolate(startY, 0, easing(pos)));
if (now > finish)
clearInterval(interval);
}, 15);
};