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>
  • 相关阅读:
    Microsoft .NET Framework 2.0实现发送邮件(Email)总结
    Microsoft .NET Framework 2.0对文件传输协议(FTP)操作(上传,下载,新建,删除,FTP间传送文件等)实现汇总
    抽象类
    WingIDE 单步调试 Uliweb Python 代码
    Android 4.0 SDK的离线方式安装
    .NET 3.5 中WCF客户端代理性能改进以及最佳实践
    在linux上部署Redmine
    认识jQuery mobile 框架,资源,书籍
    如何使用搜索技巧来成为一名高效的程序员
    Management Console 工具管理类软件通用开发框架(开放源码)
  • 原文地址:https://www.cnblogs.com/52css/p/2971180.html
Copyright © 2011-2022 走看看