• 运动函数封装(js)


    // 运动函数

    function starMove(obj,json,fnEnd){

      clearInterval(obj.timer);

      obj.timer  = setInterval(function(){

        var bStop = true;

        for(var name in json){

          var iTarget = json[name]; // 目标点

          if(name = 'opacity'){

              var cur = parseInt(parseFloat(getStyle(obj,name))*100);

          }else{

              var cur = parseInt(getStyle(obj,name));

          }

          var speed = (iTarget-cur)/8;

          speed = speed>0?Math.ceil(speed):Math.floor(speed);// 每30毫秒运动的距离,数值越小运动越慢

          if(name = 'opacity'){

              obj.style.opacity = (cur+speed)/100;

          }else{

              obj.style[name]= cur+speed+'px';

          }

          if(cur != iTarget){

            bStop = false;

          }

        }

        if(bStop){

          clearInterval(obj.timer);

          if(fnEnd){

            fnEnd();

          }

        }

      },30);

    }

    // 获取css样式

    function getStyle(obj,attr){

      if(obj.currentStyle){

        return obj.currentStyle[attr];

      }else{

        return obj.getComputedStyle(obj)[attr];

      }

    }

  • 相关阅读:
    解决vue项目中出现Invalid Host header问题
    vue、uni-app常用的过滤器
    vue让子组件刷新的方法
    工作中 交换机 相关
    XOR Sum in Assembly
    mysql 秒转化为-时分秒
    springboot项目-声明式事务失效
    DOM 元素 classList 的操作方式
    normalize() 和 splitText()
    js 一道面试题,有关函数执行逻辑
  • 原文地址:https://www.cnblogs.com/ljblog/p/6829526.html
Copyright © 2020-2023  润新知