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

为什么这个函数后面运行的那个函数先运行了

应该宽变宽之后跳出a,可是一开始就跳出a了

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>任意属性值2</title>
    <style type="text/css">
        body,div{  padding:0;margin:0;font:normal 12px "微软雅黑"}
        div{
            width:200px;
            height:150px;
            background-color: gold;
            top:20px;
            left:20px;
            filter: alpha(opacity:30);
            opacity: 0.3;
            float:left;
            margin-left:20px
 }
    </style>
    <script type="text/javascript">
        window.onload=function() {
            var box = document.getElementById("box");
                box.alpha=30;
                box.timer=null;
                box.onmouseover = function(){startMove(this,'width',300,alert("a"))};
        };
        function startMove(obj,attr,target,fn){
            clearInterval(obj.timer);
            obj.timer=setInterval(
                    function(){
                        var icur=0;
                        if(attr=='opacity'){
                            icur=Math.round(parseFloat(getStyle(obj,attr))*100)
                        }else{
                            icur= parseInt(getStyle(obj,attr));
                        }
                        var speed=(target-icur)/8;
                        speed=speed>0?Math.ceil(speed):Math.floor(speed);
                        if(icur==target){
                            clearInterval(obj.timer);
                            if(fn){
                                fn()
                            }
                        }else{
                            if(attr=='opacity'){
                                obj.style.filter='alpha(opacity:'+(icur+speed)+')';
                                obj.style.opacity=(icur+speed)/100
 }else{
                                obj.style[attr]=icur+speed+'px'
 }
                        }
                    },30)
        }
        function getStyle(obj,attr){
            if(obj.currentStyle){
                return obj.currentStyle[attr];
            }else{
                return getComputedStyle(obj,false)[attr];
            }
        }

    </script>
</head>
<body>
<div id="box"></div>
</body>
</html>


正在回答

2 回答

alert要用function(){}包裹起来

1 回复 有任何疑惑可以回复我~
#1

慕桂英9545975 提问者

的确可以呢,谢谢
2016-05-11 回复 有任何疑惑可以回复我~
#2

慕桂英9545975 提问者

可是为什么一定要用function包裹呢
2016-05-11 回复 有任何疑惑可以回复我~
#3

1VAN1 回复 慕桂英9545975 提问者

不包起来的话,一加载完页面,就会自动执行这个函数
2016-05-11 回复 有任何疑惑可以回复我~
#4

慕桂英9545975 提问者 回复 1VAN1

好的,谢谢
2016-05-11 回复 有任何疑惑可以回复我~
查看1条回复

你这个代码好奇怪,即不像JS的外部文件

如果是写框架,你还需要传参吧

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么这个函数后面运行的那个函数先运行了

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信