用js写了一个菜单特效,其中的setTimeout为什么没起作用?

<!DOCTYPE html>

<html>

<head>

    <meta charset="UTF-8">

    <title>动画菜单</title>

    <style type="text/css">

            *{

                margin: 0;

                padding: 0;

            }

            ul {

                list-style: none;

            }

            .nav{

                width: 800px;

                height: 60px;

                margin: 50px auto;

            }

            .nav li {

                float: left;

                background: #ad3456;

                height: 60px;

                position: relative;

            }

            .nav li a {

                line-height: 60px;

                font-size: 16px;

                color: #fff;

                font-weight: normal;

                text-align: center;

                text-decoration: none;

                display: block;

                width: 90px;

            }

            .nav li a:hover {

                background: #bb8888;

                color: #ff5555;

            }

            #sub {

                position: absolute;

                left: 0;

                top: 60px;

                display: block;

                height: 0;

                overflow: hidden;

            }

            #sub  li {

                float: none;

            }

    </style>

<script type="text/javascript">

 window.onload = function() {

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

            for(var i = 0, length1 = oli.length; i < length1; i++){

                oli[i].onmouseover = function () {

                    var ul = this.getElementsByTagName('ul')[0];

                    if(ul) {

                        ul.style.display = "block";

                        starMove(ul);

                    }

                };

 }

        };

        function starMove (obj) {

             var Het = obj.offsetHeight;

             if(Het<180){

                obj.style.height = Het + 10 + 'px';

                setTimeout("starMove('"+obj+"')", 10); 

             }

             else{

                return;

             }

        }

    </script>

</head>

<body>

    <ul class="nav">

        <li><a href="#">首页</a></li>

        <li><a href="#">前端课程</a>

             <ul id="sub">

                 <li><a href="">HTML/CSS</a></li>

                 <li><a href="">JavaScript</a></li>

                 <li><a href="">JQuery</a></li>

             </ul>

        </li>

        <li><a href="#">案例中心</a></li>

        <li><a href="#">关于我们</a></li>

    </ul>

</body>

</html>


兰小尔
浏览 1228回答 3
3回答

奕弈

应该就是obj那里的问题

漫猫le

设置时间超时那里引号有问题呃

懷淰過厾3139859

obj是变量,加个引号就成字符串了
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript