Темный режим с использованием mix-blend-mode: разница не работает - PullRequest
0 голосов
/ 14 октября 2019

Хорошо, поэтому я пытался реализовать функцию темного режима на моем сайте. Я сделал виджет, который появляется в правом нижнем углу страницы. У меня есть весь сайт, заключенный в div под названием test. При нажатии на виджет он переключается и добавляет класс dark-mode-screen к элементу test.

Однако меняется только цвет текста и виджета, а фон остается тем же.

CSS


        .box {
            position: absolute;
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%);
            border: 1px solid #333;
            padding: 10px 20px;
            font-family: sans-serif;
            mix-blend-mode: normal;
            transition: mix-blend-mode 0.7s ease-in;
        }

        .dark-button {
            position: absolute;
            right: 20px;
            bottom: 20px;
            border-radius: 50px;
            height: 60px;
            width: 60px;
            border: 1px solid steelblue;
            background: steelblue;
            outline: none;
        }

        .dark-mode-screen {
          width: 100vw;
          height: 100%;
          position: fixed;
          top: 0;
          left: 0;
          background: white;
          overflow-y: scroll;
        }

        .test {
            background: #fff;
            transition: all 0.7s ease-in;
        }

HTML:


    <div class="test">
    <div class="container" style="background: #fff; mix-blend-mode: difference;">

        <div class="box">
            <h3>My Paragraph</h3>
            <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
            tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
            quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
            consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
            cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
            proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
        </div>

        <button class="dark-button"></button>

    </div>
    </div>

JavaScript:

        const darkModeToggle = document.querySelector('.dark-button');
        darkModeToggle.onclick = function() {
            document.querySelector('.test').classList.toggle('dark-mode-screen');
        }

1 Ответ

0 голосов
/ 14 октября 2019

Вы можете установить background-color свойство CSS на белый mix-blend-mode не предоставляется ничего для вычитания:

.box {
  ...
  background-color: white;
}

const darkModeToggle = document.querySelector('.dark-button');
darkModeToggle.onclick = function() {
  document.querySelector('.test').classList.toggle('dark-mode-screen');
}
.box {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  border: 1px solid #333;
  padding: 10px 20px;
  font-family: sans-serif;
  mix-blend-mode: normal;
  transition: mix-blend-mode 0.7s ease-in;
  background-color: white;
}

.dark-button {
  position: absolute;
  right: 20px;
  bottom: 20px;
  border-radius: 50px;
  height: 60px;
  width: 60px;
  border: 1px solid steelblue;
  background: steelblue;
  outline: none;
}

.dark-mode-screen {
  width: 100vw;
  height: 100%;
  position: fixed;
  top: 0;
  left: 0;
  background: white;
  overflow-y: scroll;
}

.test {
  background: #fff;
  transition: all 0.7s ease-in;
}
<div class="test">
  <div class="container" style="background: #fff; mix-blend-mode: difference;">
    <div class="box">
      <h3>My Paragraph</h3>
      <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure
        dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
    </div>
    <button class="dark-button"></button>
  </div>
</div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...