简单的进度条实现

.box {
            width: 0;
            height: 50px;
            line-height: 50px;
            background-color: pink;
        }

<div class="box">0%</div>
    <button>开始</button>
    <script>
        var timer;
        var box = document.getElementsByClassName("box")[0];
        var btn = document.getElementsByTagName("button")[0];
        console.log(box.offsetWidth);
        btn.addEventListener("click",function(){
            clearInterval(timer);
            timer = setInterval(function(){
                if(box.offsetWidth < 500) {
                    box.style.width = box.offsetWidth + 5 + "px";
                    box.innerHTML = box.offsetWidth / 5 + "%";
                }else {
                    clearInterval(timer);
                }
            }, 16);
        });
    </script>

踩的坑一:
box.style.width拿不到元素的width:原因在于,只有的元素的css是内嵌式,style.width才能拿到数据并返回xx px,否则返回空;内联式的时候通过offsetWidth可以拿到width(包括padding、border),返回的是数值;
style.width可以设置元素宽度,但offsetWidth不可以设置宽度;

全部评论

相关推荐

Debug_EVE:简历不要做成左右两页的,尽量做成上下一页
点赞 评论 收藏
分享
04-09 21:07
门头沟学院 Java
a了几道
明天也要十一点半之前起床:最恶心的一集。各个都会做,各个都做不对,乍一看开心坏了以为自己能 ak,结果是春招以来做得最垃圾的一次。第二题测试数据里面 k 为什么有 0,直接全错;第三题感觉自己啥情况都考虑了但是只有 60%。
投递拼多多集团-PDD等公司10个岗位 >
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务