#javascript
#javascript
Вопрос:
Я пытаюсь программно увеличить ширину div
на заданный процент в цикле. У меня есть div, который содержит индикатор выполнения, который я пытаюсь увеличить на X процентов с каждой итерацией. Мой код приведен ниже.
var progressWidth = $('#progress').width();
var progressContainerWidth = $('#progressBar').width();
var currentWidth = Math.round((progressWidth / progressContainerWidth) * 100);
var newWidth = parseFloat(currentWidth) parseFloat(0.6);
$('#progress').width(newWidth '%');
Я пытаюсь каждый раз увеличивать процент ширины на 0,6. По какой-то причине оно автоматически округляет 0.6 до 1. Итак, моя начальная ширина равна 10%, и она составляет 10,6, 11,6, 12,6 и т.д…
Почему он добавляет 1.0, а не 0.6?
Комментарии:
1. Возможно, вы захотите проверить
<progress>
элемент. Но из того, что я вижу, кажется, что вы округляете в большую сторону, а затем добавляете 0,6.2. потому что вы использовали Math.round для этого?
3. Какое значение
currentWidth
4. @chbchb55 Да, именно это и происходит. Третья строка округляется до ближайшего целого числа, а не до двух знаков после запятой. Как только я это исправлю, все будет работать просто отлично.
Ответ №1:
Не округляйте свои проценты
В настоящее время вы используете Math.round
команду say 10.6
, которая превращает его в 11
. Вместо этого просто добавьте 0.6
без округления.
const currentWidth = progressWidth / progressContainerWidth * 100; // 10.6
const newWdith = currentWidth 0.6; // 11.2