页面加载后如何激活倒计时?

Posted

技术标签:

【中文标题】页面加载后如何激活倒计时?【英文标题】:How to activate the countdown after the page loads up? 【发布时间】:2021-10-18 11:09:33 【问题描述】:

模板中有一些里程表项目我想用于我的网站(我的编程语言是:Asp.net Core):

倒计时效果在用户可见时发生(例如当页面滚动到该位置时)

我的问题是:此部分位于网站的主横幅中(标题下方),并且倒计时效果在页面加载之前结束。 因为页面在加载前处于倒计时所需位置

而且页面加载时,只显示倒计时的最终结果! (没有效果的简单文字):

这是我的代码:

    <div class="funfacts-area">
    <div class="row">
        @foreach (var item in LandingItems)
        
        <div class="col-lg-3 col-md-3 col-6 col-sm-3">
            <div class="funfact">
                <h3><span class="odometer" data-count="@item.count" dir="ltr">00</span>+</h3>
                <p>@item.name</p>
            </div>
        </div>
        
    </div>
</div>

此代码仅在以下情况下有效:在页面中间使用 Ctrl + F5(清除缓存)并滚动到顶部横幅:然后激活倒计时效果并开始计数...

我尝试在完全加载后将此代码作为 PartialViewResult 发送到 View jquery: windows.onload () 。但不幸的是,countdown 无法检测到用户位置 用于倒计时激活并且值为 00

有什么办法可以解决这个问题?请帮助我...

【问题讨论】:

【参考方案1】:

您可以尝试使用 EventListener。 在 DOM 加载后执行(在 img 和 css 之前):

document.addEventListener("DOMContentLoaded", function()
    //....
);

或者

在所有内容加载和解析后执行:

window.addEventListener("load", function()
    // ....
)

【讨论】:

我应该使用它来加载 PartialViewResult 吗? (不幸的是没有工作!): 您应该使用它来将 与孩子一起注入另一个 div。 EventListener 的内部应该是这样的: document.getElementById("id").innerhtml = ... 很遗憾没用! 但是我用你可以看到的新答案解决了这个问题。 【参考方案2】:

重估 Html 内容以重新激活里程计倒计时:

        $(window).on('load', function () 
        $('.odometer').each(function () 
            $(this).html("-");
            $(this).html($(this).data("count"));
        );

【讨论】:

以上是关于页面加载后如何激活倒计时?的主要内容,如果未能解决你的问题,请参考以下文章

如何在页面重新加载超过 10 像素时激活颜色更改导航

尽管页面刷新,如何保持计数器倒计时?

找到正确的结果后如何杀死重复的计时器

在带有导航应用程序的加载页面的计时器上加载插页式广告?

如何让页面加载完成后执行js

如何在页面加载完成后执行js脚本