zoukankan      html  css  js  c++  java
  • js的运动框架

     1 /**
     2  * Created by zhouhaiou on 2015/6/10.
     3  */
     4 
     5 
     6 // 封装获取id的方法
     7 function $(id){
     8     return document.getElementById(id);
     9 }
    10 
    11 // 封装获取class的方法
    12 
    13 function getClass(className,parent){
    14     var oParent = parent ? $(parent) : document,
    15         eles = [],
    16         elements = oParent.getElementsByTagName('*');
    17     for(var i = 0 ; i<elements.length;i++){
    18         if(elements[i].className == className){
    19             eles.push(elements[i]);
    20         }
    21     }
    22     return eles;
    23 }
    24 
    25 //获取最终样式
    26 function getStyle(obj,attr){
    27     if(obj.currentStyle){
    28         return obj.currentStyle[attr];
    29     }else{
    30         return getComputedStyle(obj,false)[attr];
    31     }
    32 }
    33 
    34 function startMove(obj,json,fn){
    35 
    36     clearInterval(obj.timer);
    37     obj.timer = setInterval(function(){
    38 
    39         var flag = true; //假设动作是否全部达到期望值
    40 
    41         for(var attr in json) {
    42             // 取当前值
    43             var iCur = 0;
    44             if (attr == 'opacity') {
    45                 iCur = Math.round(parseFloat(getStyle(obj, attr)) * 100)
    46             } else {
    47                 iCur = parseInt(getStyle(obj, attr));
    48             }
    49 
    50             // 速度
    51             var speed = (json[attr] - iCur) / 8;
    52             speed = speed > 0 ? Math.ceil(speed) : Math.floor(speed);
    53 
    54             //判断是否结束
    55             if (iCur != json[attr]) {
    56                 flag = false;
    57             }
    58             if (attr == 'opacity') {
    59                 obj.style.opacity = (iCur + speed) / 100;
    60                 obj.style.filter = 'alpha:(opacity=' + iCur + speed + ')';
    61             } else {
    62                 obj.style[attr] = iCur + speed + 'px';
    63             }
    64 
    65         }
    66 
    67         if(flag){
    68             console.log(0);
    69             clearInterval(obj.timer);
    70             if (fn != undefined) {
    71                 fn();
    72             }
    73         }
    74     },30)
    75 }
  • 相关阅读:
    工厂与抽象工厂
    memcache的分布式配置
    Windows下的 mysql 5.5主从同步配置
    sql执行超时处理
    RabbitMQ远程访问配置
    事件驱动与流程驱动
    数据库连接池的配置和使用
    mysql常见的hint(转载的)
    数据库结构的设计与如何最大限度的利用索引
    [asp.net webfrom+spring.net Error] Resource handler for the 'web' protocol is not defined.
  • 原文地址:https://www.cnblogs.com/zhouhaiou/p/4569003.html
Copyright © 2011-2022 走看看