• zepto返回顶部动画


    点击返回顶部

    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);
        }
      }
      $("#back2top").on("click", function() {
        //$("body").scrollTop(0);
        //window.scrollTo(0,0);
        goTop();
      });

    zepto滚动到某个位置

    $.fn.scrollTo = function(options) {
      var defaults = {
        toT: 0, //滚动目标位置
        durTime: 500, //过渡动画时间
        delay: 30, //定时器时间
        callback: null //回调函数
      };
      var opts = $.extend(defaults, options),
        timer = null,
        _this = this,
        curTop = _this.scrollTop(), //滚动条当前的位置
        subTop = opts.toT - curTop, //滚动条目标位置和当前位置的差值
        index = 0,
        dur = Math.round(opts.durTime / opts.delay),
        smoothScroll = function(t) {
          index++;
          var per = Math.round(subTop / dur);
          if (index >= dur) {
            _this.scrollTop(t);
            window.clearInterval(timer);
            if (opts.callback && typeof opts.callback == 'function') {
              opts.callback();
            }
            return;
          } else {
            _this.scrollTop(curTop + index * per);
          }
        };
      timer = window.setInterval(function() {
        smoothScroll(opts.toT);
      }, opts.delay);
      return _this;
    };
  • 相关阅读:
    一图看懂host_only nat bridge拓扑结构
    Linux iptables原理--数据包流向
    linux iptables常用命令之配置生产环境iptables及优化
    linux service命令解析
    mysql 二进制日志后缀数字最大为多少
    mysql基于init-connect+binlog完成审计功能
    MySQL5.7(5.6)GTID环境下恢复从库思(qi)路(yin)方(ji)法(qiao)
    Centos6.5 python升级成2.7版本出现的一些问题解决方法
    python生成随机密码
    (原创)c++中的类型擦除
  • 原文地址:https://www.cnblogs.com/woodk/p/5307555.html
Copyright © 2020-2023  润新知