为了账号安全,请及时绑定邮箱和手机立即绑定

javascript 为什么在运动框架中不能实现borderWidth的变化,我的代码如下请指教:

javascript 为什么在运动框架中不能实现borderWidth的变化,我的代码如下请指教:

慕虎5948952 2016-08-18 15:47:24
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312" /><title>边框运动</title><style>div{width:100px; height:100px; margin:20px; float:left; background:yellow; border:2px solid green;    filter:alpha(opacity=30);        opacity:0.3;  }</style><script>function getStyle(obj,name){    if(obj.currentStyle){        return obj.currentStyle[name]}else{            return getComputedStyle(obj,false)[name];            }            }window.onload=function(){    var aDiv1=document.getElementById('div1');     ;     var oTxt=document.getElementById('txt');aDiv1.onmouseover=function(){    startMove(this,'borderWidth',100);    }aDiv1.onmouseout=function(){     startMove(this,'borderWidth',30);    }/*aDiv1.onmouseover=function(){        startMove(this,'width',400);    }aDiv1.onmouseout=function(){     startMove(this,'width',100);    }*/    }    function startMove(obj,attr,iTarget){        clearInterval(obj.timer);    obj.timer=setInterval(function(){                var cur=parseInt(getStyle(obj,attr))        if(attr=='opacity'){            cur=parseFloat(getStyle(obj,attr))*100;            }else{                cur=parseInt(getStyle(obj,attr));                                }        var speed=(iTarget-cur)/4;        speed=speed>0?Math.ceil(speed):Math.floor(speed);    if(cur==iTarget){    clearInterval(obj.timer);}    else{        if(attr=='opacity'){        obj.style.filter='alpha(opacity:'+cur+speed+')';        obj.style.opacity=(cur+speed)/100;            var oTxt=document.getElementById('txt');         oTxt.value=    obj.style.opacity;                            }else{    obj.style[attr]=cur+speed+'px';    var oTxt=document.getElementById('txt');    oTxt.value=    cur+speed;}        }                },30)        }</script></head><body><input id='txt' type="text" /><div id='div1'>边框运动</div></body></html>
查看完整描述

1 回答

?
stone310

TA贡献361条经验 获得超191个赞

代码在chrome和IE下可以正常执行的,火狐由于不支持borderWidth这么写,要求更严谨的写法:

border-left-width ,border-top-width ,border-right-width , border-bottom-width,

所以先建议你把运动框架改成完美运动框架(就是将attr和iTarget两个参数,变成json模式),具体可找找教程,网上很多,慕课应该也有

然后再写边框运动就写上面4个属性都变化(所有浏览器都能兼容)

以后就记得了,写边框运动比较麻烦点

查看完整回答
反对 回复 2016-08-19
  • 1 回答
  • 0 关注
  • 1317 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信