下面分享出来2个返回顶部代码:
来源:http://www.zhangxinxu.com/wordpress/2017/01/share-a-animation-algorithm-js/
返回顶部代码:
<p>
<button onclick="backToTop();">点击我返回顶部</button>
</p>
javascript代码:
// requestAnimationFrame的兼容处理
if (!window.requestAnimationFrame) {
requestAnimationFrame = function(fn) {
setTimeout(fn, 17);
};
}
// 滚动到顶部缓动实现
// rate表示缓动速率
var backToTop = function (rate) {
var doc = document.body.scrollTop? document.body : document.documentElement;
var scrollTop = doc.scrollTop;
var top = function () {
scrollTop = scrollTop + (0 - scrollTop) / (rate || 2);
if (scrollTop < 1) {
doc.scrollTop = 0;
return;
}
doc.scrollTop = scrollTop;
requestAnimationFrame(top);
};
top();
};
方法二:
HTML代码:
<p><button id="btnEaseout">点击我执行Math.easeout返回顶部</button></p>
javascript:
// requestAnimationFrame的兼容处理
if (!window.requestAnimationFrame) {
requestAnimationFrame = function(fn) {
setTimeout(fn, 17);
};
}
Math.easeout = function (A, B, rate, callback) {
if (A == B || typeof A != 'number') {
return;
}
B = B || 0;
rate = rate || 2;
var step = function () {
A = A + (B - A) / rate;
if (A < 1) {
callback(B, true);
return;
}
callback(A, false);
requestAnimationFrame(step);
};
step();
};
近期评论