移动端-transform应用,获取样式值/设置样式

/**

 函数名

 transformCSS

 

 作用

 * 设置元素的 transform 变形

 * 获取元素的 transform 变形样式值

 

 参数:

 * 元素对象

 * 变形样式的名称

 * 变形样式的样式值

 

 使用示例

 设置

 transformCSS(swiperWrapper, 'translateX', -375);

 transformCSS(swiperWrapper, 'rotate', 45);

 transformCSS(swiperWrapper, 'scale', 2);

 

 读取

 transformCSS(swiperWrapper, 'translateX');

 transformCSS(swiperWrapper, 'rotate');

 transformCSS(swiperWrapper, 'scale');

 

 */

 

function transformCSS(node, style, value) {

    //判断当前对象的仓库对象是否设置

    //示例 {translateX: 0, rotate: 45}

    if (node.store === undefined) {

        node.store = {};

    }


 

    //设置

    if (arguments.length === 3) {

 

        //将当前的信息 保存在对象中

        node.store[style] = value;

        // {translateX: 300, rotate: 45}   =>  translateX(300px) rotate(45deg)

        //空字符串

        var str = '';

        for (var i in node.store) {

            //判断样式单位

            switch (i) {

                case 'translateX':

                case 'translateY':

                case 'translateZ':

                    str += `${i}(${node.store[i]}px) `;

                    break;

                case 'rotate':

                case 'rotateX':

                case 'rotateY':

                case 'rotateZ':

                    str += `${i}(${node.store[i]}deg) `;

                    break;

                case 'scale':

                case 'scaleX':

                case 'scaleY':

                case 'scaleZ':

                    str += `${i}(${node.store[i]}) `;

                    break;

            }

        }

        //设置元素的变形样式

        node.style.transform = str;

        /*

        switch (style) {

            case 'translateX':

            case 'translateY':

            case 'translateZ':

                node.style.transform = `${style}(${value}px)`;

                break;

 

            case 'rotate':

            case 'rotateX':

            case 'rotateY':

            case 'rotateZ':

                node.style.transform = `${style}(${value}deg)`;

                break;

 

            case 'scale':

            case 'scaleX':

            case 'scaleY':

            case 'scaleZ':

                node.style.transform = `${style}(${value})`;

                break;

 

        }

        */

    }

 

    //读取样式

    if (arguments.length === 2) {

        //判断 store 对象中是否存在当前获取的变形样式

        if (node.store[style] === undefined) {

            //判断样式是否为 scale 样式

            if (style.substr(0, 5) === 'scale') {

                return 1;

            } else {

                return 0;

            }

        } else {

            return node.store[style];

        }

    }

}

 

// transformCSS(swiperWrapper, 'translateX', 200);

// transformCSS(swiperWrapper, 'rotate', 200);

// transformCSS(swiperWrapper, 'scale', 200);

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值