• 缓动小算法


    /*
    1.每次移动剩余距离的一半。
    简单的公式表示 nA = A - (A - B) / 2
    简单的公式表示 48 = 64 - (64 - 32) / 2
    我下一秒的位置 = 现在位置 - 现在和初恋之间距离的一半
    */

    window.requestAnimFrame = (function(){
            return  window.requestAnimationFrame       ||
                    window.webkitRequestAnimationFrame ||
                    window.mozRequestAnimationFrame    ||
                    function( callback ){
                        window.setTimeout(callback, 1000 / 60);
                    };
        })();
    function backToTop(start, end, rate, callback){
        if(start == end || typeof start != "number") return;
        var doc = document.documentElement.scrollTop ? document.document : document.body;
        var step = function(){
            start = start - (start - end) / rate;
            if(Math.abs(start-end) < 1){
                doc.scrollTop = 0;
                if(callback){
                    callback();
                }
                return;
            }
            doc.scrollTop = start;
            requestAnimationFrame(step);
        }
        step();
    }
    function getScroll(){
        if(window.pageXOffset != undefined){
            return {
                x : window.pageXOffset,
                y : window.pageYOffset
            }
        }
    
        if(document.compatMode == "CSS1Compat"){
            return {
                x : document.documentElement.scrollLeft,
                y : document.documentElement.scrollTop
            }
        }
    
        return {
            x : document.body.scrollLeft,
            y : document.body.scrollTop
        }
    }

    调用

    clock.onclick = function(){
        var offsetY = getScroll().y;
        backToTop(offsetY, 0, 4, function(){
            console.log("回到顶部了")
        });
    }
  • 相关阅读:
    Samba网络配置
    嵌入式汇编程序
    GDB常用命令
    Everything搜索结果显示0 Object
    关于值类型和引用类型
    Main()

    利用python脚本自动下载ICML会议接受的文章
    如何从mac下的photos导出照片
    Erlang语言研究综述
  • 原文地址:https://www.cnblogs.com/alantao/p/7463149.html
Copyright © 2020-2023  润新知