javascript - 当元素在窗口中时如何触发 jQuery 计数器?

标签 javascript jquery function triggers

我有这个 jQuery 代码,可以触发从 0 到 1750 的计数器。但是,这个计数器位于我的页面底部,如果您没有足够快地滚动到它,您就会错过计数器动画。有没有办法仅在您点击窗口中的元素后才触发此运行?

// Counter
$(document).ready(function() {
    $('.count').each(function() {
        $(this).prop('Counter', 0).animate({
            Counter: $(this).text()
        }, {
            duration: 12000,
            easing: 'swing',
            step: function(now) {
                $(this).text(Math.ceil(now));
            }
        });
    });
});

最佳答案

尝试这样的操作,检查窗口顶部位置,如果高于或等于目标元素并小于窗口高度,则执行计数动画。

HTML

<div class="wrapper-count">
  <ul>
    <li class="count">0</li>
    <li class="count">0</li>
    <li class="count">0</li>
  </ul>
</div>

JS

$(document).ready(function(){
  $(function(){
    $(window).on("scroll", function(){
      var win_height = $(this).height();
      var win_pos    = $(this).scrollTop();
      var top_pos    = $(".wrapper-count").position().top;

      if(win_pos >= top_pos - win_height){
        // here goes your count logic
      }
    });
  });
});

关于javascript - 当元素在窗口中时如何触发 jQuery 计数器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39403840/

相关文章:

c# - 如何从代码隐藏中调用按钮单击事件处理程序

javascript - 并行同时加载?

jquery在动态添加表时防止自动修剪

r - 在 dplyr 中为 group_by 调用变量名称的函数 - 如何在函数中对这个变量进行矢量化?

javascript - 在 js 库中 $.something (object) 怎么也可以是 $ ("something") (一个函数)?

javascript - 在多个 angular.js 应用程序之间共享单个服务

javascript - 文档边栏中的元素不会自动激活

javascript - 将函数传递给 Deferred 的构造函数的优点/缺点

jquery - jQuery() 函数有什么作用?

c - C 中指针的困难