Javascript 数字动画从向下滚动开始

Javascript 数字动画从向下滚动开始,javascript,jquery,jquery-animate,Javascript,Jquery,Jquery Animate,我在我的网站上使用了以下数字动画: 但是,动画不会从该特定页面部分开始,而是仅在刷新页面时开始。我想当访问者向下滚动到页面部分时触发它 我怎么做这个 JQuery (function ($) { $.fn.countTo = function (options) { options = options || {}; return $(this).each(function () { // set options for curre

我在我的网站上使用了以下数字动画:

但是,动画不会从该特定页面部分开始,而是仅在刷新页面时开始。我想当访问者向下滚动到页面部分时触发它

我怎么做这个

JQuery

(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);
  }
});
我的HTML:

<section id="Four" class="wrapper style3">
                <div class="inner">
                    <div class="container">
                        <div class="row">
                                <div class="two columns">
                                <i class="fa fa-truck fa-5x"></i>
                                <h3>A Fleet of</h3>
                                <div class="counter col_fourth">
                                <h2 class="timer count-title count-number" data-to="120" data-speed="2000"></h2>
                                </div>
                                <p class="text-box">TRUCKS</p>
                            </div>
                                <div class="two columns">
                                <i class="fa fa-users fa-5x"></i>
                                <h3>Involving</h3>
                                <div class="counter col_fourth">
                                <h2 class="timer count-title count-number" data-to="160" data-speed="2000"></h2>
                                </div>
                                <p class="text-box">EMPLOYEES</p>
                            </div>
                                <div class="two columns">
                                <i class="fa fa-cubes fa-5x"></i>
                                <h3>Loading</h3>
                                <div class="counter col_fourth">
                                <h2 class="timer count-title count-number" data-to="6686" data-speed="2000"></h2>
                                </div>
                                <p class="text-box">FTL LOADS IN 2016</p>
                            </div>
                                <div class="two columns">
                                <i class="fa fa-leaf fa-5x"></i>
                                <h3>Emissions</h3>
                                <div class="counter col_fourth">
                                <h2 class="timer count-title count-number" data-to="100" data-speed="2000"></h2>
                                </div>
                                <p class="text-box">100% EURO 6</p>
                            </div>
                                <div class="two columns">
                                <i class="fa fa-compress fa-5x"></i>
                                <h3>Trailers</h3>
                                <div class="counter col_fourth">
                                <h2 class="timer count-title count-number" data-to="160" data-speed="2000"></h2>
                                </div>
                                <p class="text-box">TRAILERS</p>
                            </div>
                                <div class="two columns">
                                <i class="fa fa-calendar fa-5x"></i>
                                <h3>Since</h3>
                                <div class="counter col_fourth">
                                <h2 class="timer count-title count-number" data-to="1991" data-speed="2000"></h2>
                                </div>
                                <p class="text-box">25 YEARS OF SERVICE</p>
                            </div>
                        </div>
                    </section>
                </div>
            </div>
        </section>**strong text**

一队
卡车

涉及 员工

加载 2016年FTL装载量

排放

100%欧元6

拖车

拖车

自从

服务25年

**强文本**
当您滚动到该部分时,可以使用jQuery Waypoints插件触发动画。下载库并将其导入HTML。然后确定应该触发的点。像这样的

var waypoint = new Waypoint({
  element: document.getElementById('Four'),
  handler: function(direction) {
    //Put here or call your javascript code for animation
  },
  offset: 50%
})

当您滚动到该部分时,可以使用jQuery Waypoints插件触发动画。下载库并将其导入HTML。然后确定应该触发的点。像这样的

var waypoint = new Waypoint({
  element: document.getElementById('Four'),
  handler: function(direction) {
    //Put here or call your javascript code for animation
  },
  offset: 50%
})

很抱歉,我是Javascript方面的新手,而不是HTML/CSS方面的专家。你能再详细一点必要的程序吗?这就是我尝试过的,我用你提供的脚本创建了一个js文件,并将我的计数器javascript代码放在你说的地方。然后我在我的html脚本部分插入了这一行:
很抱歉,我是Javascript方面的新手,而不是html/CSS方面的专家。你能再详细一点必要的程序吗?这就是我尝试过的,我用你提供的脚本创建了一个js文件,并将我的计数器javascript代码放在你说的地方。然后我在我的html脚本部分插入了这一行: