javascript - JS 对参数/变量值的条件?

标签 javascript jquery

我正在尝试在进度条脚本上做一些非常简单的事情,但我不存在的 JavaScript 知识让我有点挣扎。

我所拥有的看起来像这样:

if (progress == 100) {
    var element = document.getElementById("avatar-progress");
    element.classList.add("finish");
    setTimeout(function () {
        $('#avatar-progress').circleProgress(
            'value',
            0
        );
    }, 250);
                }

if ($('#avatar-progress').circleProgress('value') == 0) {
    var element = document.getElementById("avatar-progress");
    element.removeAttribute("class");
}



$('#avatar-progress').circleProgress({
    value: 0,
    size: 156,
    fill: { color: "#60bcff" },
    emptyFill: "#ffffff",
    thickness: 2,
});

基本上这个进度条发生的事情是这样的:

当上传达到100%时:在#avatar-progress中添加一个类以获得炫酷的脉冲效果,然后,在脉冲动画所需的延迟之后,该值被设置回0,使进度条消失,并准备好下次上传。

但是,为了脚本的缘故,我必须等待值返回到 0 才能删除该类(如果不这样做,脉冲动画将不会再次加载)。

这就是我未能做到的,我不知道如何编写它,正如您在我的代码中看到的那样,我尝试了一些东西:

if ($('#avatar-progress').circleProgress('value') == 0) {
    var element = document.getElementById("avatar-progress");
    element.removeAttribute("class");
}

但是我的条件不行。我正在寻找一些帮助来以正确的方式编写这一行。谢谢您的建议

最佳答案

实际上,您可以在 setTimeout 函数中执行这两件事:

if (progress === 100) {
  var element = document.getElementById('avatar-progress');
  element.classList.add('finish');
  setTimeout(function () {
    $('#avatar-progress').circleProgress('value', 0);
    element.classList.remove('finish');
  }, 250);
}

注意不要忘记在 JavaScript 中使用三等号 (===),以确保比较正确。

关于javascript - JS 对参数/变量值的条件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36830642/

相关文章:

javascript - 如何在主干 View 中加载外部 html 模板

javascript setInterval() 和变量作用域

jQuery Mobile - 包含外部文件的页脚

javascript - 如何将 # 符号作为 URL 中 GET 查询字符串的一部分传递?

javascript - 如果未单击 Bootstrap 选项卡,如何 checkin jQuery?

javascript - 如何在 Angular 2 模板中使用外部 Javascript 函数?

javascript - 8不小于或等于30?

javascript - "Error: path must be a string"(v5.10.0)

javascript - 根据导入的值 [javascript, jquery] 在表的下拉列表中设置一个值

javascript - 如果子项包含类,我如何向父项添加类?