JavaScript 菜单

发布于 2024-12-02 07:29:54 字数 2087 浏览 1 评论 0原文

我试图让菜单的元素显示和消失,但 i 在某个级别停止,为什么?

<script language="javascript">
tre = [1, 0, 0, 0, 0];
function tree(e) {
    elm = document.getElementsByClassName("sub")[e];
    if (e == 1) {
        n = 73;
    }
    else if (e == 3 || e == 4) {
        n = 168;
    }
    else {
        n = 144;
    }
    ex = e;
    if (tre[ex] == 0) {
        i = 0;
        tmp1 = setInterval(function() {
            if (i <= 100 && i >= 0) {
                elm.style.height = (i / 100) * n + "px";
                document.getElementById('wait').innerHTML += i + ' ';
                i++;
            } else {
                clearInterval(tmp1);
                tre[ex] = 1;
            }
        }, 2);
    }
    else {
        j = 100;
        tmp2 = setInterval(function() {
            if (j >= 0) {
                elm.style.height = (j / 100) * n + "px";
                j--;
            } else {
                    clearInterval(tmp2);
                tre[ex] = 0;
            }
    }, 2);
    }
}
</script>
<style>
div {overflow: hidden;}
</style>
<span onClick="tree(0);">Toogle 0</span><br />
<div class="sub">test 0<br />test 0<br />test 0<br />test 0<br />test 0<br />test 0</div>
<span onClick="tree(1);">Toogle 1</span><br />
<div class="sub">test 1<br />test 1<br />test 1</div>
<span onClick="tree(2);">Toogle 2</span><br />
<div class="sub">test 2<br />test 2<br />test 2<br />test 2<br />test 2<br />test 2</div>
<span onClick="tree(3);">Toogle 3</span><br />
<div class="sub">test 3<br />test 3<br />test 3<br />test 3<br />test 3<br />test 3<br />test 3</div>
<span onClick="tree(4);">Toogle 4</span><br />
<div class="sub">test 4<br />test 4<br />test 4<br />test 4<br />test 4<br />test 4<br />test 4</div>

I'm trying to make a menu's elements show and disappear, but i stops at a certain level, why?

<script language="javascript">
tre = [1, 0, 0, 0, 0];
function tree(e) {
    elm = document.getElementsByClassName("sub")[e];
    if (e == 1) {
        n = 73;
    }
    else if (e == 3 || e == 4) {
        n = 168;
    }
    else {
        n = 144;
    }
    ex = e;
    if (tre[ex] == 0) {
        i = 0;
        tmp1 = setInterval(function() {
            if (i <= 100 && i >= 0) {
                elm.style.height = (i / 100) * n + "px";
                document.getElementById('wait').innerHTML += i + ' ';
                i++;
            } else {
                clearInterval(tmp1);
                tre[ex] = 1;
            }
        }, 2);
    }
    else {
        j = 100;
        tmp2 = setInterval(function() {
            if (j >= 0) {
                elm.style.height = (j / 100) * n + "px";
                j--;
            } else {
                    clearInterval(tmp2);
                tre[ex] = 0;
            }
    }, 2);
    }
}
</script>
<style>
div {overflow: hidden;}
</style>
<span onClick="tree(0);">Toogle 0</span><br />
<div class="sub">test 0<br />test 0<br />test 0<br />test 0<br />test 0<br />test 0</div>
<span onClick="tree(1);">Toogle 1</span><br />
<div class="sub">test 1<br />test 1<br />test 1</div>
<span onClick="tree(2);">Toogle 2</span><br />
<div class="sub">test 2<br />test 2<br />test 2<br />test 2<br />test 2<br />test 2</div>
<span onClick="tree(3);">Toogle 3</span><br />
<div class="sub">test 3<br />test 3<br />test 3<br />test 3<br />test 3<br />test 3<br />test 3</div>
<span onClick="tree(4);">Toogle 4</span><br />
<div class="sub">test 4<br />test 4<br />test 4<br />test 4<br />test 4<br />test 4<br />test 4</div>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

一世旳自豪 2024-12-09 07:29:54

根据您的逻辑,仅当您将 tre 数组声明为 tre = [1, 1, 1, 1, 1]; 时,代码才会起作用
菜单的这种向下滑动和向上滑动效果可以使用 Jqueries 轻松实现,而无需在代码中进行这些类型的静态计算。

According to your logic the code will work only, if you declare tre array as tre = [1, 1, 1, 1, 1];
This slidedown and slideup effects for menus can easily be implemented using Jqueries without going for these types of static calculations that you have done in your code..

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文