• 2-5 js基础-简易运动框架


    'use strict';
    function getStyle(obj,sName){
        return (obj.currentStyle||getComputedStyle(obj,false))[sName];
    }
    //function move(obj,json,time,type,fn)
    function move(obj,json,options){
        options=options||{};
        options.time=options.time||700;
        options.type=options.type||'linear';
        var start={};
        var dis={};
        for(var name in json){
            start[name]=parseInt(getStyle(obj,name));
            if(isNaN(start[name])){
                //加默认值
                switch(name){
                    case 'left':
                    start[name]=obj.offsetLeft;
                    break;
                    case'top':
                    start[name]=obj.offsetTop;
                    break;
                    case'width':
                    start[name]=obj.offsetWidth;
                    break;
                    case'Height':
                    start[name]=obj.offsetHeight;
                    break
                    case'opacity':
                    start[name]=1;
                    break;
                    case'border':
                    start[name]=0;
                }
            }
            dis[name]=json[name]-start[name];
        }
        var count=Math.floor(options.time/30);
        var n=0;
        clearInterval(obj.timer);
        obj.timer=setInterval(function(){
            n++;
            var ocr='';
            for(var name in json){
                
                switch(options.type){
                    case'linear':
                    var a=n/count;
                    ocr=start[name]+a*dis[name];
                    break;
                    case'ease-in':
                    var a=n/count;
                    ocr=start[name]+Math.pow(a,3)*dis[name];
                    break;
                    case'ease-out':
                    var a=(1-n/count);
                    ocr=start[name]+(1-Math.pow(a,3))*dis[name];
                    break;
                }
                if(name=='opacity'){
                    obj.style[name]=ocr;
                    obj.style[name]='filter:alpha(opacity='+ocr*100+')';
                }else{
                obj.style[name]=ocr+'px';
                }
            }
            if(n==count){
                clearInterval(obj.timer);
                options.end&&options.end();
            }
        },30);
    }
  • 相关阅读:
    Ubuntu环境下IPython的搭建和使用
    智能移动导游解决方案简介
    企业文化、团队文化与知识共享
    CoinPunk项目介绍
    Insight API开源项目介绍
    比特币Bitcoin源代码安装编译
    Javascript单元测试Unit Testing之QUnit
    Node.js的UnitTest单元测试
    Node.js调试
    Alfresco 4 项目介绍
  • 原文地址:https://www.cnblogs.com/wujiaolong/p/7442904.html
Copyright © 2020-2023  润新知