В принципе, У меня есть два полукруга. Один (круг0) имеет постоянный радиус, а внутренний полукруг (circle1, с градиентом) имеет переменный радиус. circle1 имеет начальное значение 1% радиуса окружности 0.Почему этот полукружок не растет?
Я хочу ввести значение в поле назначения (0-100) для нового радиуса круга1. Я установил интервал в 100 мс для 1% -ного шага в радиусе круга1, чтобы показать, что он растет, но он, похоже, не работает. Я не очень хорошо разбираюсь в javascript/jquery, но любая помощь очень ценится.
Смотрите демо здесь: https://jsfiddle.net/nilerafter24/ma845o6d/3/
Вот мой JavaScript:
$(document).ready(function() {
function circle_set(delta) {
if (!delta) {
return false;
} else {
var e = document.querySelectorAll('circle[id^=circle]');
var radius0 = parseInt(e[0].getAttribute('r'), 10);
var radius1 = parseInt(e[1].getAttribute('r'), 10);
var currentRadius = (delta/100) * 50;
if (currentRadius <= radius0) {
setTimeout(function() {
if (radius1 <= currentRadius) {
radius1++;
e[1].setAttribute('r', String(radius0) + "%");
},
}, 100);
}
}
}
var inputTargetButton = document.getElementById('executeTarget');
var inputTargetValue = document.getElementById('setTarget');
if (inputTargetButton.type == 'button') {
inputTargetButton.onclick = function() {
circle_set(inputTargetValue.value)
}
}
});
Edit: Исправлено большое mistake.Changed radius0 к Радиус1. Вам нужно больше кофе.
У вас отсутствует '' 'before', 100);' в вашем тайм-ауте –
Кроме того, условие (radius0 <= currentRadius) не работает .... Я запутался с условием ur. first Если true, то второй, если должен быть неудачным, является взаимным. что такое currentRadius. – nisar
@nisar currentRadius - это то, что пользователь вводит в Targetbox. radius0 всегда меньше, чем currentRadius, потому что это радиус. Отсутствует условие отказа. этот код просто не запускается, если он не отвечает условиям. –