#javascript #jquery #jquery-animate
#javascript #jquery #jquery-анимировать
Вопрос:
Как мне создать анимированное число, добавляя значение каждую секунду. Как в этом плагине http://aishek.github.io/jquery-animateNumber
HTML
<div class="earned">171655.10457862</div>
Вот код jQuery
var DOGEbal = 171655.10457862;
var per_second = 1.56948984;
interval = setInterval(function(){
DOGEbal = per_second;
DOGEbalStack = DOGEbal.toString();
DOGEbalStack = DOGEbalStack.slice(0, (DOGEbalStack.indexOf(".")) 9);
$(".earned").html(DOGEbalStack);
}, 1000);
Итак, я хотел бы анимировать добавление числа per_second
к .earned
. Делаю это каждую секунду, как в плагине animateNumber
Вот https://jsfiddle.net/uzd83qw6/1 / пример. Как анимировать этот пример?
Комментарии:
1. Не уверен, в чем здесь ваш вопрос. В этом примере fiddle есть «анимированное» число, которое увеличивается каждую секунду.
2. @Jeto Этот пример в fiddle не анимирован. Пожалуйста, посмотрите на пример расширения. Это анимированное. В скрипке просто увеличивается с каждой секундой…
3. Здесь нет анимации. Что вы хотите, так это записать каждое число между текущим и следующим числом. Вам просто нужен цикл, который переходит от текущего к следующему, и распечатайте его.
4. Просто замените 1000 на 10, а 1,5 xxx на 0,015xxx, и оно будет анимировано
5. Тот факт, что число изменяется через все промежуточные числа, создает впечатление движения, отсюда и анимация. Он просто печатает много чисел перед печатью окончательного числа.
Ответ №1:
Вы могли бы использовать свой «шаг за секунду» и преобразовать его в задержку «за миллисекунду»:
function animate($target, fromValue, incrementPerSecond) {
var incrementPerMillisecond = incrementPerSecond / 1000;
var currentValue = fromValue;
$target.text(currentValue);
setInterval(function () {
$target.text((currentValue incrementPerMillisecond).toFixed(8));
currentValue = incrementPerMillisecond;
}, 1);
}
animate($('.earned'), 171655.10457862, 1.56948984);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="earned"></div>
Комментарии:
1.
incrementPerSecond / 10
иsetInterval to 100
кажется, что это лучше. Спасибо