• 完美运动框架


    function getStyle(ele, attr) {
      if (ele.currentStyle) {
        return ele.currentStyle[attr];
      } else {
        return getComputedStyle(ele, false)[attr];
      }
    }
    function move(ele, obj, callback) {
      clearInterval(ele.timer);
      ele.timer = setInterval(function () {
        var a = true;
        for (var attr in obj) {
          if (attr == "opacity") {
            var start = getStyle(ele, attr) * 100;
          } else {
            var start = parseInt(getStyle(ele, attr));
          }
          var speed = (obj[attr] - start) / 8;
          speed = speed > 0 ? Math.ceil(speed) : Math.floor(speed);
          if (obj[attr] != start) {
            a = false;
          }
          if (attr == "opacity") {
            ele.style.opacity = (start + speed) / 100;
            ele.style.filter = "alpha(opacity=" + (start + speed)+ ")";
          } else {
            ele.style[attr] = start + speed + "px";
          }
        }
        if (a) {
          clearInterval(ele.timer);
          callback && callback();
        }
      }, 30)
    }
  • 相关阅读:
    键盘事件
    冒泡事件-捕获事件-阻止事件
    Date()常用属性
    dom树节点的增删改插
    boost/c++11 变量类型打印、相等判断以及成员函数指针相关
    c++ std:call_once 与 单例模式实现
    c++11 异步编程 std::async
    c++ STL中一些常用函数/模板
    c++11 std::atomic 原子操作
    C++ std::atomic_flag 实现spinLock
  • 原文地址:https://www.cnblogs.com/asablog/p/10728170.html
Copyright © 2020-2023  润新知