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

    链式运动框架在任意运动框架的基础上加了一个形参,一共四个形参  对象,属性,运动目标值,函数 obj,attr,iTarget,fnEnd

    链式运动框架代码:

    View Code
     1 <script>
     2 function startMove(obj,attr,iTarget,fnEnd)
     3 {
     4     clearInterval(obj.timer);  //清除当前对象的定时器
     5     obj.timer=setInterval(function(){  //定义当前对象的定时器
     6         var cur=0;
     7             
     8         if(attr=='opacity'){  //如果attr属性是opacity时
     9             cur=Math.round(parseFloat(getStyle(obj,attr))*100);  //opacity要用parseFloat强制转换为浮点数才能起作用,因为浮点数习惯用整数表示所以乘以100。因为有些小数*100在计算机中会出现bug,会出现算不尽的数,所以要用Math.round()来四舍五入。
    10         }
    11         else{
    12             cur=parseInt(getStyle(obj,attr));    //把从对象获取到的属性值强制转换为整形
    13         }
    14         
    15         var speed=(iTarget-cur)/6;
    16         speed=speed>0?Math.ceil(speed):Math.floor(speed);  //用三目运算符,当速度大于0就向上取整,否则就向下取整,这样能避免缓冲运动出现bug
    17         
    18         if(cur==iTarget){
    19             clearInterval(obj.timer);
    20             if(fnEnd)fnEnd();
    21         } 
    22         else{
    23             if(attr=='opacity'){
    24                 obj.style.filter='alpha(opacity:'+(cur+speed)+')';  //IE
    25                 obj.style.opacity=(cur+speed)/100;  //FireFox Chrome
    26             }
    27             else{
    28                 obj.style[attr]=cur+speed+'px';    
    29             }
    30         }
    31     },30);
    32 };
    33 </script>
     1 <script>
     2 function startMove(obj,attr,iTarget,fnEnd)
     3 {
     4     clearInterval(obj.timer);  //清除当前对象的定时器
     5     obj.timer=setInterval(function(){  //定义当前对象的定时器
     6         var cur=0;
     7             
     8         if(attr=='opacity'){  //如果attr属性是opacity时
     9             cur=Math.round(parseFloat(getStyle(obj,attr))*100);  //opacity要用parseFloat强制转换为浮点数才能起作用,因为浮点数习惯用整数表示所以乘以100。因为有些小数*100在计算机中会出现bug,会出现算不尽的数,所以要用Math.round()来四舍五入。
    10         }
    11         else{
    12             cur=parseInt(getStyle(obj,attr));    //把从对象获取到的属性值强制转换为整形
    13         }
    14         
    15         var speed=(iTarget-cur)/6;
    16         speed=speed>0?Math.ceil(speed):Math.floor(speed);  //用三目运算符,当速度大于0就向上取整,否则就向下取整,这样能避免缓冲运动出现bug
    17         
    18         if(cur==iTarget){
    19             clearInterval(obj.timer);
    20             if(fnEnd)fnEnd();
    21         } 
    22         else{
    23             if(attr=='opacity'){
    24                 obj.style.filter='alpha(opacity:'+(cur+speed)+')';  //IE
    25                 obj.style.opacity=(cur+speed)/100;  //FireFox Chrome
    26             }
    27             else{
    28                 obj.style[attr]=cur+speed+'px';    
    29             }
    30         }
    31     },30);
    32 };
    33 </script>
  • 相关阅读:
    Codeforces 448 D. Multiplication Table
    编程算法
    Linux内核导出符号宏定义EXPORT_SYMBOL源代码分析
    3.Chrome数据同步服务分析--server一片
    hadoop 开始时间datanode一个错误 Problem connecting to server
    about greenplum collection tool
    HDU 3172 Virtual Friends(并用正确的设置检查)
    leetcode
    Codeforces 450 C. Jzzhu and Chocolate
    Swift
  • 原文地址:https://www.cnblogs.com/52css/p/2971180.html
Copyright © 2011-2022 走看看