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

单个div动画效果能出来,但鼠标拖到其他div上之后就有bug了,求大神

<!DOCTYPE html>

<html>

<head>

    <meta charset="UTF-8">

    <title>Document</title>

    <style>

        div{

            width: 100px;

            float: left;

            margin-left: 30px;

            height: 100px;

            background: red;

            opacity: 0.3;

            filter:alpha(opacity:30);

        }

    </style>

</head>

<body>

    <div id="box1"></div>

    <div id="box2"></div>

    <div id="box3"></div>

    <div id="box4"></div>

<script>

    window.onload=function(){

        var box = document.getElementsByTagName("div");


        for(var i=0;i<box.length;i++){

            var timer = null,

                opacity = 30;

            box[i].opacity = 30;

         box[i].onmouseover = function(){

             boxChang(this,100);

         }

        box[i].onmouseout = function(){

            boxChang(this,30);

        }

        box[i].timer=null;


    }

        function boxChang(obj,iTarget){

            clearInterval(timer);

            timer = setInterval(function(){

                var speed = 0;

                if(opacity>iTarget){

                    speed= -10;

                }else{

                    speed= 10;

                }

                if(iTarget==opacity){

                    clearInterval(timer);

                }else{

                    opacity += speed;

                    obj.style.filter = 'alpha(opacity'+opacity+')';

                    obj.style.opacity = opacity/100;

                }

            },30)

        }

    }

</script>

</body>

</html>


正在回答

1 回答

首先   将for循环中的“ var timer = null,”删除。因为(1)  timer在使用 “box[i].timer=null;”之后,timer变成了自定义属性,不是变量,不要用var定义。(2) 语句结束用" ; "结尾。

 其次  将函数function boxChang(obj,iTarget)中的每一个timer 、opacity前面加上“ obj. ”, 但是“obj.style.filter = 'alpha(opacity'+opacity+')';”中只需在最后一个"opacity"加" obj. "。

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

举报

0/150
提交
取消

单个div动画效果能出来,但鼠标拖到其他div上之后就有bug了,求大神

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