Как менять цвет фона по кнопке?

Ссылка скопирована
7 апреля 2026 1 ответ

Привет всем! Как можно реализовать измение цвета фона по кнопке. Тоесть как дарк мод, только кнопок должно быть больше. Например, красная кнопка при нажатии меня цвет фона боди на красный, синяя на синий и тд. Заранее спасибо!

Дополнительно:

Здравствуйте, покажите код, как вы пытались реализовать? Так как тут только подсказывают ошибки ваших стараний.

  • Николай, без понятия как реализовать с несколькими кнопками. Если 2 кнопки то оно либо добавляет к боди условно active либо убирает, а как так провернуть с большим количеством кнопок?
  • vittallyyaaa, можете показать код? Или же просто в каждую кнопку, например, забить дата-атрибут со значением цвета. После в скрипте их все найти и перебрать циклом, навесив обработчик клика по кнопке и при клике читать дата-атрибут кнопки и это значение ставить в стиль body
  • Николай, сейчас так попробую
  • vittallyyaaa,

    Если 2 кнопки то оно либо добавляет к боди условно active либо убирает, а как так провернуть с большим количеством кнопок?

    Добавлять не active, а какой-то другой класс или data-атрибут. Тот, который будет отвечать за нужную цветовую схему.
    А дальше всё тоже самое.

  • В общем, ответ был проще чем я думал, думал через toggle в js не будет работать, но все работает. Спасибо, за то что сам подумав и нашел решение
  • вот скрипт

    document.querySelector('#purple').addEventListener('change', function(event){
    document.querySelector('body').classList.toggle('purple');
    });

    document.querySelector('#red').addEventListener('change', function(event){
    document.querySelector('body').classList.toggle('red');
    });

    вот хтмл

    purple
    red

    еще не стилизовал

  • почему-то не отпрявляеться хтмл корректно, там через чекбокс реализвано
  • только сейчас оно работет только еслинажать еще раз на активную кнопку
    нужно как-то реализовать, чтобы они парралельно могли работать
  • тоесть когда в бади добавился клас ред, чтобы при нажатии на новую кнопку, клас ред убирался, а добавлялся другой
  • Ankhena,
    только сейчас оно работет только еслинажать еще раз на активную кнопку
    нужно как-то реализовать, чтобы они парралельно могли работать

    тоесть когда в бади добавился клас ред, чтобы при нажатии на новую кнопку, клас ред убирался, а добавлялся другой

  • Ankhena, код свой выше написал
  • vittallyyaaa, с классом могут быть проблемы, если на элементе есть ещё классы или могут быть навешаны (а они могут, особенно если это body). Поэтому вариант удалить все классы и навесить нужный не очень хорошая идея.
    А значит, лучше использовать data-

    У кнопок тоже прописать data-
    У кнопки получить - на body навесить.
    Кнопки перебирать в цикле.

  • vittallyyaaa, что html тут не съедало заключайте код в теги <code></code>.
  • Нужно решить такую задачу?

    Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

    Заказать помощь
    Лучший ответ
    1
    Роман IT Ответ

    Для изменения цвета фона по нажатию кнопки вам необходимо использовать JavaScript. Вот пример кода, который поможет вам реализовать данную функциональность:

    ```html

    Change Background Color

    body {
    text-align: center;
    font-family: Arial, sans-serif;
    }
    button {
    padding: 10px 20px;
    font-size: 16px;
    background-color: #007bff;
    color: #fff;
    border: none;
    cursor: pointer;
    }

    Change Background Color

    const button = document.getElementById('changeColorButton');
    const colors = ['#ff0000', '#00ff00', '#0000ff', '#ffff00', '#ff00ff', '#00ffff'];
    let currentColorIndex = 0;

    button.addEventListener('click', function() {
    document.body.style.backgroundColor = colors[currentColorIndex];
    currentColorIndex = (currentColorIndex + 1) % colors.length;
    });

    ```

    В данном коде мы создаем кнопку с id "changeColorButton" и массив цветов colors. При нажатии на кнопку мы меняем цвет фона body на следующий цвет из массива colors. Таким образом, каждое нажатие кнопки будет менять цвет фона на следующий цвет из массива.

    Вы можете добавить или изменить цвета в массиве colors по своему усмотрению. Также можно настроить другие стили кнопки и страницы в соответствии с вашим дизайном.

    Надеюсь, это поможет вам реализовать изменение цвета фона по кнопке на вашем сайте. Если у вас возникнут дополнительные вопросы, не стесняйтесь задавать.

    Другие ответы (0)

    Пока нет других ответов. Будьте первым, кто поможет автору.

    Ответить на вопрос

    комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *

    Вам также может быть интересно