用原生js封装transform函数

原生js实现tranform动画效果
原理:封装 传参 1.判断是否含有动画 创建对象 2.判断读和写
封装用自定义函数(function (w){})(window) w为形参 window为实参
将函数赋予w的属性 调用即可
传参(node,name,value) node为元素 name为tranform属性 value为值
1.1.判断是否含有动画 创建对象

if(!node.transform){
            /*无为添加transform对象*/
            node.transform={};
        }

2.判断读和写 通过argument.length的值判断
写 1.将属性存入对象中 2.使用for in 遍历对象 3. switch判断属性 4.返回对象中对应的属性值

if(arguments.length>2){
            //写
            /*名值对添加到对象*/
            node.transform[name]=value;
            var result="";
            for(var item in node.transform){
                switch (item){
                    case 'rotate':
                    case 'skew':
                    case 'skewX':
                    case 'skewY':
                    case 'skewZ':
                        /*通过判断transform类型在对象中调出相应的item值*/
                        result += item+ '('+ node.transform[item] +'deg) ';
                        break;
                    case 'scale':
                    case 'scaleX':
                    case 'scaleY':
                    case 'scaleZ':
                        result += item+ '('+ node.transform[item] +') ';
                        break;
                    case 'translate':
                    case 'translateX':
                    case 'translateY':
                    case 'translateZ':
                        result += item+ '('+ node.transform[item] +'px) ';
                        break;
                };
            }
            node.style.transform=result;
        }


判断属性是否为空 为空则设置默认值 不为空则在对象中获取值

//读
            if(typeof node.transform[name] == 'undefined'){
                /*默认值*/
                if(name == 'scale'||name == 'scaleX'||name=='scaleY'){
                    value =1

                }else{
                    value =0
                }

            }else{
                value = node.transform[name] ;

            }
            return value;
        }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值