Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.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脚本?_Javascript_Jquery_Html_Css_Timer - Fatal编程技术网

Javascript 我如何修改这个只在用户向下滚动时计数的jQuery脚本?

Javascript 我如何修改这个只在用户向下滚动时计数的jQuery脚本?,javascript,jquery,html,css,timer,Javascript,Jquery,Html,Css,Timer,我偶然发现了这段代码,它在jQuery中对一个网站起到了相当大的作用 我如何修改它以等待开始计数,直到用户向下滚动到类“counter Colu_fourth”或其他类 我知道我需要使用scroll类,但我不知道如何使用它 我正在考虑使用类似于 //由Sayed Rafeeq创建 (function ($) { $.fn.countTo = function (options) { options = options || {}; return $(this).each(f

我偶然发现了这段代码,它在jQuery中对一个网站起到了相当大的作用

我如何修改它以等待开始计数,直到用户向下滚动到类“counter Colu_fourth”或其他类

我知道我需要使用scroll类,但我不知道如何使用它

我正在考虑使用类似于

//由Sayed Rafeeq创建

(function ($) {


$.fn.countTo = function (options) {
    options = options || {};

    return $(this).each(function () {
        // set options for current element
        var settings = $.extend({}, $.fn.countTo.defaults, {
            from:            $(this).data('from'),
            to:              $(this).data('to'),
            speed:           $(this).data('speed'),
            refreshInterval: $(this).data('refresh-interval'),
            decimals:        $(this).data('decimals')
        }, options);

        // how many times to update the value, and how much to increment the value on each update
        var loops = Math.ceil(settings.speed / settings.refreshInterval),
            increment = (settings.to - settings.from) / loops;

        // references & variables that will change with each update
        var self = this,
            $self = $(this),
            loopCount = 0,
            value = settings.from,
            data = $self.data('countTo') || {};

        $self.data('countTo', data);

        // if an existing interval can be found, clear it first
        if (data.interval) {
            clearInterval(data.interval);
        }
        data.interval = setInterval(updateTimer, settings.refreshInterval);

        // initialize the element with the starting value
        render(value);

        function updateTimer() {
            value += increment;
            loopCount++;

            render(value);

            if (typeof(settings.onUpdate) == 'function') {
                settings.onUpdate.call(self, value);
            }

            if (loopCount >= loops) {
                // remove the interval
                $self.removeData('countTo');
                clearInterval(data.interval);
                value = settings.to;

                if (typeof(settings.onComplete) == 'function') {
                    settings.onComplete.call(self, value);
                }
            }
        }

        function render(value) {
            var formattedValue = settings.formatter.call(self, value, settings);
            $self.html(formattedValue);
        }
    });
};

$.fn.countTo.defaults = {
    from: 0,               // the number the element should start at
    to: 0,                 // the number the element should end at
    speed: 1000,           // how long it should take to count between the target numbers
    refreshInterval: 100,  // how often the element should be updated
    decimals: 0,           // the number of decimal places to show
    formatter: formatter,  // handler for formatting the value before rendering
    onUpdate: null,        // callback method for every time the element is updated
    onComplete: null       // callback method for when the element finishes updating
};

function formatter(value, settings) {
    return value.toFixed(settings.decimals);
}
}(jQuery));

jQuery(function ($) {
  // custom formatting example
  $('#count-number').data('countToOptions', {
    formatter: function (value, options) {
      return value.toFixed(options.decimals).replace(/\B(?=(?:\d{3})+(?!\d))/g, ',');
    }
  });

  // start all the timers
  $('.timer').each(count);  

  function count(options) {
    var $this = $(this);
    options = $.extend({}, options || {}, $this.data('countToOptions') || {});
    $this.countTo(options);
  }
});

所有借用的小模块,这样链接的CodePen JS不会在加载时自动运行(timerNew类而不是timer)

//来自http://stackoverflow.com/a/33138553/4946681
函数IsCrolledinToView(elem){
变量$elem=$(elem);
变量$window=$(window);
var docViewTop=$window.scrollTop();
var docViewBottom=docViewTop+$window.height();
var elemTop=$elem.offset().top;
var elemBottom=elemTop+$elem.height();
返回((elemBottom=docViewTop));
}
$(窗口).on('scroll',函数(){
if(isScrolledIntoView('.wrapper')){
$('.timerNew').countTo();
$(窗口).off('scroll');
}
});
.spacer{
高度:2000px;
}

JQUERY数字动画
jQuery计数器,以计数到目标数字

SomeText Goesher

SomeText Goesher

SomeText Goesher

SomeText Goesher


所有借用的小型模块,以便链接的CodePen JS不会在加载时自动运行(timerNew类而不是timer)

//来自http://stackoverflow.com/a/33138553/4946681
函数IsCrolledinToView(elem){
变量$elem=$(elem);
变量$window=$(window);
var docViewTop=$window.scrollTop();
var docViewBottom=docViewTop+$window.height();
var elemTop=$elem.offset().top;
var elemBottom=elemTop+$elem.height();
返回((elemBottom=docViewTop));
}
$(窗口).on('scroll',函数(){
if(isScrolledIntoView('.wrapper')){
$('.timerNew').countTo();
$(窗口).off('scroll');
}
});
.spacer{
高度:2000px;
}

JQUERY数字动画
jQuery计数器,以计数到目标数字

SomeText Goesher

SomeText Goesher

SomeText Goesher

SomeText Goesher


非常有魅力!我将继续使用jQuery,以便有一天我可以像您一样编写代码。谢谢你的帮助!工作起来很有魅力!我将继续使用jQuery,以便有一天我可以像您一样编写代码。谢谢你的帮助!