zoukankan      html  css  js  c++  java
  • 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;
    };
  • 相关阅读:
    如何解决错误【selenium.common.exceptions.SessionNotCreatedException】
    VSFTP常用功能及参数配置
    ROS白名单服务端PHP脚本,客户端ROS脚本
    ocserver标准配置文件
    linux send与recv函数详解
    LINUX 恢复rm删除的文件
    C语言实现md5函数代码
    linux c语言获取CPU,内存,网速,磁盘使用,IO
    linux c语言fork socket 并发回射服务器
    杨惠兰不值得任何人付出
  • 原文地址:https://www.cnblogs.com/woodk/p/5307555.html
Copyright © 2011-2022 走看看