javascript运动框架

本文介绍了一个简单的运动框架实现,用于平滑地改变DOM元素的样式属性,并提供了一个通用的样式获取及设置方法,兼容IE与现代浏览器。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

//运动框架
function sportFrame(obj,json,fun){
    var timer;
    clearInterval(obj.timer);
    obj.timer=setInterval(function(){
        var Stop=true;
        for(var name in json){
            var val=0;
            //判断是不是透明度
            if(name=='opacity'){
                val=Math.round(parseFloat(cssStyle(obj,name))*100);
            }else{
                val=parseInt(cssStyle(obj,name));
            }
            //缓冲速度
            var speed=(json[name]-val)/10;
            speed=speed>0?Math.ceil(speed):Math.floor(speed);
            if(val!=json[name]){
                if(name=="opacity"){
                    obj.style.filter='alpha(opacity:'+val+speed+')';//IE
                    obj.style.opacity=(val+speed)/100;
                }else{
                    cssStyle(obj,name,val+speed+'px');
                }
            }
        }
        //判断是否达到终点
        if(Stop){
            clearInterval(timer);        
            if(fun){
                fun();
            }
        }    
    },30);
}

//获取属性值和设置属性值框架
function cssStyle(obj,prop,value){
    //style只能获取写在html标签中的写在style属性中的值(style=”…”),
    //而无法获取定义在<style type="text/css">里面的属性
    //currentStle,getComputedStyle方法可以获取内联或者外部的样式
    //获取样式
    if(arguments.length==2){
        if(obj.currentStyle){
            return obj.currentStyle[prop];  //IE
        }else{
            return getComputedStyle(obj,false)[prop];  //Fire
        }
    }
    //设置样式
    else{
        if(arguments.length==3){
            obj.style[prop]=value;
        }
    }
}

 

转载于:https://www.cnblogs.com/wgj32/p/5700368.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值