【问题标题】:elem.style.height not triggered inside while loopelem.style.height 未在 while 循环内触发
【发布时间】:2016-08-30 08:35:50
【问题描述】:

我想制作一个完成后“折叠”的进度条。
通过折叠,我的意思是反复将高度降低1

但是当进度条“完成”(达到宽度 100)时,什么都不会发生。

这是我的代码:

               function frame() {
                    var elem = document.getElementById("myBar");
                    var height = 30;
                    if (width >= 100) {
                        while (elem.style.height != 0) {
                            elem.style.height = height + '%';
                            height--;
                        }
                        clearInterval(id);
                    } else {
                        width++; 
                        elem.style.width = width + '%';
                    }
                }

哪里出错了?

对不起,如果我的问题很愚蠢或重复;我搜索了论坛,但没有发现重复的帖子。

提前致谢

【问题讨论】:

    标签: javascript html css progress-bar progress


    【解决方案1】:

    你已经这样做了

     elem.style.height = height + '%';
    

    以下内容永远不会是错误的:

    while (elem.style.height != 0) 
    

    因为这是假的:

    "0%"==0 // false
    

    而且我认为循环有问题。如果要一个一个地降低高度,最好调用一个setInterval,因为循环会在不到1ms的时间内将高度变为0,这与直接将高度设置为0没有区别。

    【讨论】:

    • 谢谢。将改用 setInterval。
    猜你喜欢
    • 2022-01-10
    • 1970-01-01
    • 1970-01-01
    • 2016-04-24
    • 1970-01-01
    • 1970-01-01
    • 2016-03-14
    • 1970-01-01
    • 2011-06-19
    相关资源
    最近更新 更多