#javascript #html
#javascript #HTML
Вопрос:
я создал эту функцию под названием makeRandColor, которая создает случайный цвет с помощью строковых литералов RGB и шаблона, но мне не давало покоя, как заставить ее работать каждую секунду, я попробовал установить интервал времени, но, похоже, он не работает, я что-то упускаю?
я хочу, чтобы это выглядело так: document.body.style.backgroundColor = makeRandColor; , но каждую секунду с settimeinterval
Комментарии:
1. ну, на всякий случай, если вы захотите остановить интервал позже, сохраните интервал в переменной
let v=setInterval(function(){document.body.style.backgroundColor=makeRandColor()}, 1000)
, а время указано в миллисекундах. Чтобы очистить этот интервал,clearInterval(v)
Ответ №1:
вы должны использовать его следующим образом:
const makeRandColor = () => {
const r = Math.floor(Math.random() * 255)
const g = Math.floor(Math.random() * 255)
const b = Math.floor(Math.random() * 255)
return `rgb(${r},${g},${b})`
}
setInterval(() => {
document.body.style.backgroundColor = makeRandColor();
},1000)
Ответ №2:
Пример решения:
const changeBackground = (element) => {
const random0To255 = () => Math.floor(Math.random() * 255);
return () => {
element.style.backgroundColor = `rgb(${
random0To255()}, ${
random0To255()}, ${
random0To255()})`;
}
};
setInterval(changeBackground(document.querySelector('body')), 1000);
Комментарии:
1. Пожалуйста, не забудьте объяснить, почему ваш код работает. Это помогает другим извлечь уроки из вашего ответа.
2. Я провел некоторый рефакторинг. Теперь это лучше, потому что код более читабелен. Elyer Я использую функцию IEFI, но в этом не было необходимости.