2016-10-15 2 views
1

Я пытаюсь установить длительность моего счетчика, чтобы быть медленным, не имея большого количества времени, заданного в коде, например:Продолжительность подсчета на большое число

duration: 99999; 

Первоначально я имел счетчик установлен в низкое число, но счет должен достигнуть 1,000,000,00, но я хочу иметь возможность контролировать, насколько быстро это учитывается.

Вот как я его настроил.

<div class="counter" data-count="1000000">0</div> 

и мой JS выглядит следующим образом:

$('.counter').each(function() { 
var $this = $(this), 
    countTo = $this.attr('data-count'); 

$({ countNum: $this.text()}).animate({ 
countNum: countTo 
}, 

{ 

duration: 99999, 
easing:'linear', 
step: function() { 
    $this.text(Math.floor(this.countNum)); 
} 
}); 
}); 

Я младший в это таким образом, любые другие рекомендации будут оценены.

Благодаря

ответ

2

Если вы хотите установить, как быстро отсчет делается, вы можете попробовать установить длительность (которая измеряется в миллисекундах), чтобы соответствовать значению countTo. Например, если вы хотите, чтобы инкремент выполнялся каждую секунду, выполните: duration: parseInt(countTo)*1000.

$('.counter').each(function() { 
 
    var $this = $(this), 
 
    countTo = $this.attr('data-count'); 
 

 
    $({ 
 
    countNum: $this.text() 
 
    }).animate({ 
 
    countNum: countTo 
 
    }, { 
 
    duration: parseInt(countTo) * 1000, 
 
    easing: 'linear', 
 
    step: function() { 
 
     $this.text(Math.floor(this.countNum)); 
 
    }, 
 
    complete: function() { 
 
     // Ensure that the final value is updated correctly 
 
     // ... especially when using very short durations 
 
     $this.text(this.countNum); 
 
    } 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="counter" data-count="1000000">0</div>

+0

Отлично! Большое спасибо! :) –

+0

@dcmagpies Просто помните, что даже если продолжительность может быть установлена ​​на очень маленькое значение, конечный результат может быть неточным - вам нужно будет использовать 'complete: function() {...}', чтобы вручную установить конечное значение. – Terry

Смежные вопросы