Случайный цвет фона тела каждую секунду

#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, но в этом не было необходимости.