БлогNot. Ночной режим принудительно

Ночной режим принудительно

Мы хотим, чтобы наша страница при загрузке автоматически инвертировала цвета некоторой видимой части контента к чёрной ("ночной") схеме.

Я воспользовался darkmode.js, только скрипт пришлось выкачать с этого адреса, а затем изменить в исходнике строку border-radius: 50%; на border-radius: 0; (чтобы не рисовался чёрный овал при принудительном включении фона), а также заменить position: fixed; на position: absolute; (элемент не будет висеть на месте при прокрутке страницы, а также чёрным будет закрашиваться не всё).

Затем осталось подогнать под свои нужды настройки скрипта и позицию элемента:

<script>
 //здесь изменённый исходник с https://cdn.jsdelivr.net/npm/darkmode-js
 function addDarkmodeWidget() {
  const options = {
   bottom: 'unset',
   left: 'unset',
   right: '72px',
   time: '0.5s',
   label: '*', //реально здесь вставлен другой символ
   buttonColorDark: '#000', 
   buttonColorLight: '#fff',
   autoMatchOsTheme: true
  };
  let darkmode = new Darkmode(options);
  darkmode.showWidget();
  if (!darkmode.isActivated()) darkmode.toggle();
 }
 window.addEventListener('load', addDarkmodeWidget);
}
</script>

Страница будет загружаться с чёрной "шапкой", вернуть вид по умолчанию позволит кнопка справа вверху:

скрин, качество уменьшено
скрин, качество уменьшено

Конкретный вид ЧП (чёрной полосы) будет зависеть от стиля для тега body. Если там был background-image, он не восстановится при обратном переключении режима.

Вызвать код со стороны сервера (из PHP) можно, например, так:

<?php 
 require_once('./p/mode1.html'); 
?>

поместив скрипт в папку p под именем mode1.html и включив PHP-код в какой-либо файл, загружающийся для каждой страницы сайта. Потом, когда траур кончится, можно будет просто убрать из РHP-кода строчку вызова скрипта.

18.02.2024, 14:34 [47 просмотров]


теги: javascript цвет css

показать комментарии (1)