【问题标题】:jquery Counter is not starting from 0 to the target numberjquery Counter 不是从 0 开始到目标数
【发布时间】:2021-07-28 16:28:25
【问题描述】:

尝试创建从 0 开始并上升到目标值的计数器。我尝试使用 setInterval 但它没有用,因为我对它不太清楚,所以我参考了某些教程也仍然无法使用我的代码。如果有人可以通过更正我的代码来帮助我,那对我来说会很棒。 提前谢谢你。

$(document).ready(function() {
    $('.tts-counter .tts-counter-item .tts-number').each(function() {
        var counterValue = $(this).data('counter');
        var finalValue = 0;
        for (var i = 0; i <= counterValue; i++) {
            $(this).text(finalValue);
            finalValue++;
        }
    });
});

【问题讨论】:

  • 问题出在哪里?此代码应向您显示最高数字。更改之间没有间隔,因此所有更改都立即完成。
  • 我希望它从0开始到目标值。但它直接向我展示了目标值。
  • 当然,请再次仔细阅读我的评论。如果您想在 100 毫秒或 2 分钟内更改值,您的脚本应该如何知道?使用 setInterval。您的循环完全按照您的意愿行事,每一步之间的间隔几乎为零。
  • 好的 会试试谢谢。我应该在循环中添加 setInterval 吗?
  • 打开任何 JS 教程,找到 setTimeout 并考虑一下。我在这里的最后一条评论。

标签: javascript jquery for-loop counter setinterval


【解决方案1】:

查看并参考了许多与计数器相关的文章后,我找到了这个解决方案。

$('.tts-number').each(function() {
                $(this).prop('Counter', 0).animate({
                    Counter: $(this).text()
                }, {
                    duration: 4000,
                    easing: 'swing',
                    step: function(now) {
                        $(this).text(Math.ceil(now));
                    }
                });
            });

【讨论】:

    猜你喜欢
    • 2014-07-05
    • 2021-10-10
    • 2022-01-11
    • 1970-01-01
    • 2018-11-18
    • 1970-01-01
    • 2019-09-20
    • 1970-01-01
    • 2010-10-18
    相关资源
    最近更新 更多