回到顶部滑动效果

来源:互联网 发布:ubuntu pytorch 编辑:程序博客网 时间:2024/05/20 23:39

摘抄

var Go=document.getElementsByClassName("Go")[0];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;        var y3=window.scrolly;        // 滚动条到页面顶部的水平距离          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);          }  }  Go.onclick=function(){    goTop();    return false;}

“`

var Go=document.getElementsByClassName(“Go”)[0];
function goTop(){
var speed=1.1;
var time = 15;
var y = document.documentElement.scrollTop||document.body.scrollTop ;
// 滚动距离 = 目前距离 / 速度
window.scrollTo(0, Math.floor(y/ speed));
// 如果距离不为零, 继续调用迭代本函数
if(y> 0) {
var invoke = “goTop(” + “)”;
window.setTimeout(invoke, time);
}
}
Go.onclick=function(){
goTop();
}

原创粉丝点击