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

我想让物体运动和透明度同时实现,但是不是我想要的那种效果,哪位大神帮忙看一下

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title></title>
    <style type="text/css">
        body,ul,li{
            margin: 0;
            padding: 0;
        }
        ul,li{
            list-style: none;
        }
        ul li{
         width: 200px;
            height: 100px;
            background-color: red;
            margin-bottom: 20px;
            filter:alpha(opacity:30);
            opacity:0.3;

        }

    </style>
    <script>
        window.onload= function () {
            var Ali=document.getElementsByTagName('li');
            for(var i=0;i<Ali.length;i++){
                Ali[i].alpha=30;
                Ali[i].timer=null;
                Ali[i].onmouseover= function () {
                    startMove(this, 400,100);
                };
                Ali[i].onmouseout= function () {
                    startMove(this,200,30);
                }
            }
        };

        function startMove(obj,iTarget,iTargetSpeed) {
            clearInterval(obj.timer);

            var speedAlpha=0;
            obj.timer=setInterval(function () {

                    if(obj.alpha>iTargetSpeed){
                        speedAlpha=-10;
                    }else{
                        speedAlpha=10;
                    }
               
                    if(obj.alpha==iTargetSpeed){
                        clearInterval(obj.timer);
                    }else {
                        obj.alpha += speedAlpha;
//                    alpha=alpha+speed;
                        obj.style.filter = 'alpha(opacity:' + obj.alpha + ')';
                        obj.style.opacity = obj.alpha / 100;

                        var speed=(iTarget-obj.offsetWidth)/8;
                        speed=(speed>0)?Math.ceil(speed):Math.floor(speed);
                        obj.style.width=obj.offsetWidth+speed+'px';

                    }


            },30);
        }
    </script>
</head>
<body>
<ul>
    <li></li>
    <li></li>
    <li></li>
</ul>
</body>
</html>

正在回答

2 回答


动画结束条件判断有问题。修改代码如下:


<!DOCTYPE html>

<html>

<head>

    <meta charset="UTF-8">

    <title></title>

    <style type="text/css">

        body,ul,li{

            margin: 0;

            padding: 0;

        }

        ul,li{

            list-style: none;

        }

        ul li{

         width: 200px;

            height: 100px;

            background-color: red;

            margin-bottom: 20px;

            filter:alpha(opacity:30);

            opacity:0.3;


        }


    </style>

    <script>

        window.onload= function () {

            var Ali=document.getElementsByTagName('li');

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

                Ali[i].alpha=30;

                Ali[i].timer=null;

                Ali[i].onmouseover= function () {

                    startMove(this, 400,100);

                };

                Ali[i].onmouseout= function () {

                    startMove(this,200,30);

                }

            }

        };


        function startMove(obj,iTarget,iTargetSpeed) {

            clearInterval(obj.timer);


            var speedAlpha=0;

            obj.timer=setInterval(function () {


                    if(obj.alpha>iTargetSpeed){

                        speedAlpha=-10;

                    }else{

                        speedAlpha=10;

                    }

 /* 动画结束条件 */

                    if(obj.alpha==iTargetSpeed && obj.offsetWidth==iTarget){

                        clearInterval(obj.timer);

                    }else {

                        obj.alpha += speedAlpha;

//                    alpha=alpha+speed;

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

                        obj.style.opacity = obj.alpha / 100;


                        var speed=(iTarget-obj.offsetWidth)/8;

                        speed=(speed>0)?Math.ceil(speed):Math.floor(speed);

                        obj.style.width=obj.offsetWidth+speed+'px';


                    }



            },30);

        }

    </script>

</head>

<body>

<ul>

    <li></li>

    <li></li>

    <li></li>

</ul>

</body>

</html>


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

慕函数9642432 提问者

非常感谢!
2016-08-05 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

我想让物体运动和透明度同时实现,但是不是我想要的那种效果,哪位大神帮忙看一下

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