const player = {
x: 0,
y: 0,
speed: 3
};
const target = {
x: 100,
y: 300
};
// Ваша функция для обновления
const update = () => {
const angle = Math.atan2(target.y - player.y, target.x - player.x);
const distance = Math.hypot(target.x - player.x, target.y - player.y);
if (distance > player.speed) {
player.x += Math.cos(angle) * player.speed;
player.y += Math.sin(angle) * player.speed;
} else {
player.x += Math.cos(angle) * distance;
player.y += Math.sin(angle) * distance;
}
requestAnimationFrame(update);
};
update();
<form action="some_url" method="POST">
<input type="text" name="username">
<button>Submit</button>
</form>
const form = document.querySelector('form');
const users = ['John', 'Emily', 'Bruce', 'Alice'];
form.addEventListener('submit', event => {
const input = form.querySelector('input[type="username"]');
const index = users.indexOf(input.value);
if (index === -1) {
event.preventDefault();
} else {
input.value = index;
}
});
var countPlus = function(e) {
var max = Number(slider.attr('max'));
count++;
if (count > max) {
count = max;
}
// Или заменить инкремент и условие выше на это
// count = Math.min(count + 1, max);
slider.val(count);
applyFill(slider[0]);
};
input
что-то написано, в функции applyFill
- нет. А еще эту страшилку для разделения можно заменить на это (Для locale
использовать ru-RU
). input
и один button
. Дочерняя функция - это оболочка. Каждый раз при ее вызове срабатывает следующее условие: в том случае, если input
'ы не пустые, кнопка включается, иначе - выключается. Только вот что, для полноценной работы нужны еще 2 функции: enbableButton
и disabledButton
.input
'ов можно использовать любые другие элементы, у которых есть свойство value
. size.addEventListener('change', priceRequestHundler);
e
, т. к. в тот момент переменная еще не определена. А еще async/await не используют с then
. + gulp-ttf2woff2@3.0.0
added 73 packages from 67 contributors and audited 438 packages in 14.272s