0

出于某种原因,此脚本仅在 data-score 中的数字是 5 的倍数时才有效。知道如何更改它吗?

代码:

$('.about-menu').on('click',function(){
    // progress bar animation
    $('.progress .bar').each(function () {
      var me = $(this),
          datascore = me.attr('data-score'),
          score = $(this).find('.title-score');


          me.animate({
              width: datascore + '%',
              easing: 'swing'
          }, 100),  
          $(score).animateNumbers(datascore, true, 1500);
    });
});

顺便说一下,这是使用引导程序。

进度条加载的不是数字(最后一行)

动画数字:

/***********
    Animates element's number to new number with commas
    Parameters:
        stop (number): number to stop on
        commas (boolean): turn commas on/off (default is true)
        duration (number): how long in ms (default is 1000)
        ease (string): type of easing (default is "swing", others are avaiable from jQuery's easing plugin
    Examples:
        $("#div").animateNumbers(1234, false, 500, "linear"); // half second linear without commas
        $("#div").animateNumbers(1234, true, 2000); // two second swing with commas
        $("#div").animateNumbers(4321); // one second swing with commas
    This fully expects an element containing an integer
    If the number is within copy then separate it with a span and target the span
    Inserts and accounts for commas during animation by default
***********/

(function($) {
    $.fn.animateNumbers = function(stop, commas, duration, ease) {
        return this.each(function() {
            var $this = $(this);
            var start = parseInt($this.text().replace(/,/g, ""));
            commas = (commas === undefined) ? true : commas;
            $({value: start}).animate({value: stop}, {
                duration: duration == undefined ? 1000 : duration,
                easing: ease == undefined ? "swing" : ease,
                step: function() {
                    $this.text(Math.floor(this.value));
                    if (commas) { $this.text($this.text().replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1,")); }
                },
                complete: function() {
                   if (parseInt($this.text()) !== stop) {
                       $this.text(stop);
                       if (commas) { $this.text($this.text().replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1,")); }
                   }
                }
            });
        });
    };
})(jQuery);
4

0 回答 0