Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在每次滚动页面时阻止Jquery countTo刷新_Javascript_Jquery_Html_Css_Scrolltop - Fatal编程技术网

Javascript 如何在每次滚动页面时阻止Jquery countTo刷新

Javascript 如何在每次滚动页面时阻止Jquery countTo刷新,javascript,jquery,html,css,scrolltop,Javascript,Jquery,Html,Css,Scrolltop,我正在尝试使用Jquery countTo插件和一些附加脚本,这些脚本在我的视口到达网页上的某个点时运行。除了动画淡入并完成后,当我滚动页面时,countTo动画会持续运行之外,一切都很顺利 这是密码 /* Every time the window is scrolled ... */ $(window).scroll( function(){ /* Check the location of each desired element */ $('.hideme').each

我正在尝试使用Jquery countTo插件和一些附加脚本,这些脚本在我的视口到达网页上的某个点时运行。除了动画淡入并完成后,当我滚动页面时,
countTo
动画会持续运行之外,一切都很顺利

这是密码

/* Every time the window is scrolled ... */
$(window).scroll( function(){

    /* Check the location of each desired element */
    $('.hideme').each( function(i){

        var bottom_of_object = $(this).position().top + $(this).outerHeight();
        var bottom_of_window = $(window).scrollTop() + $(window).height();

        /* If the object is completely visible in the window, fade it it */
        if( bottom_of_window > bottom_of_object ){

            $(this).animate({'opacity':'1'},1000);
            jQuery(function($) {
                $('.timer').countTo({
                    from: 1500,
                    to: 3928,
                    speed: 3000,
                    refreshInterval: 50,
                    onComplete: function(value) {
                        console.debug(this);
                    }
                });
            });
        }
    }); 

});
有什么建议吗

$('.timer3').countTo({
    from: 10,
    to: 784,
    speed: 3000,
    refreshInterval: 50,
    onComplete: function(value) {
        console.debug(this);
    }
}, {triggerOnce: true});

triggerOnce:是的,只允许执行一次。

我将把它放在这里,以防有人发现它仍然有用 这是针对jquery countTo的

我们需要计算位置以检查元素“myelement”是否显示,并对其进行处理

在本例中,我们计算position以查看是否已经到达元素,然后调用该方法并通过将“eventFired”设置为true来标记它

Html:

当访问元素“myelement”时,这将仅成功执行一次计数器

<div id="myelement">
    <span class="timer" data-from="0" data-to="75" 
         data-speed="500" data-refresh-interval="1">
    </span>
</div>
var eventFired = false,
objectPositionTop = $('#myelement').offset().top;
$(window).on('scroll', function() {
var currentPosition = $(document).scrollTop()+100;

if (currentPosition >= objectPositionTop && eventFired === false) {
    eventFired = true;
    $('.timer').countTo();
  }
});