返回頂部的3中方法(解決移動端使用zepto沒有滑動的效果)

點擊返回頂部,三種方法函數

一、這個方法jQuery使用正常,zepto使用沒有動畫動畫

//zepto沒有動畫
$("body").animate({scrollTop: 0}, 500)
//zepto使用
$("body").scrollTop(0);

二、這個方法jQuery使用正常,zepto使用沒有動畫spa

window.scrollTo(0,0);

三、zepto使用能夠有動畫code

function goTop(acceleration, time) {
acceleration = acceleration || 0.1;
time = time || 16;
var x1 = 0;
var y1 = 0;
var x2 = 0;
var y2 = 0;
var x3 = 0;
var y3 = 0;
if (document.documentElement) {
x1 = document.documentElement.scrollLeft || 0;
y1 = document.documentElement.scrollTop || 0;
}
if (document.body) {
x2 = document.body.scrollLeft || 0;
y2 = document.body.scrollTop || 0;
}
var x3 = window.scrollX || 0;
var y3 = window.scrollY || 0;
// 滾動條到頁面頂部的水平距離
var x = Math.max(x1, Math.max(x2, x3));
// 滾動條到頁面頂部的垂直距離
var y = Math.max(y1, Math.max(y2, y3));
// 滾動距離 = 目前距離 / 速度, 由於距離原來越小, 速度是大於 1 的數, 因此滾動距離會愈來愈小
var speed = 1 + acceleration;
window.scrollTo(Math.floor(x / speed), Math.floor(y / speed));
// 若是距離不爲零, 繼續調用迭代本函數
if (x > 0 || y > 0) {
var invokeFunction = "goTop(" + acceleration + ", " + time + ")";
window.setTimeout(invokeFunction, time);
}
}
$(".fix_go_top").on("click", function() {
    //$("body").scrollTop(0);
    //window.scrollTo(0,0);
    goTop();
});
相關文章
相關標籤/搜索