Javascript-форум (https://javascript.ru/forum/)
-   Javascript под браузер (https://javascript.ru/forum/css-html/)
-   -   Выполнение определенной функции по времени JS (https://javascript.ru/forum/css-html/79335-vypolnenie-opredelennojj-funkcii-po-vremeni-js.html)

WildYT 26.01.2020 03:45

Выполнение определенной функции по времени JS
 
:help: :help: :help: :help: :help: :help: :help: :help: :help: :help:

Доброй ночи, у меня возникла такая проблемка.
Собираюсь сделать функцию через JavaScript чтобы меняло цветовую тему по времени, т.е. по часам
Пробовал разными способами сделать, что-то не получилось, хочу спросить у высших по уровню по JS, как это сделать.
Знаю что тут требуется использовать условие.
Но вот чтобы функция заработала... что-то не получается
Вот вам основной JS код
let toggle = document.getElementById('toggleDark')
let image = document.querySelector('.image')
let footer1 = document.querySelector('.footer')
let but= document.querySelector('.action-but')
let body = document.querySelector('.body')
toggle.addEventListener('click', toggleScheme, true)

function toggleScheme () {
  if (toggle.getAttribute("aria-checked") == "true") {
      toggle.setAttribute("aria-checked", "false");
  } else {
      toggle.setAttribute("aria-checked", "true");
  }//начинаются цветовые темы
  image.classList.toggle('image-dark')
  image.classList.toggle('image-light')
  footer1.classList.toggle('footer-dark')
  footer1.classList.toggle('footer-light')
  but.classList.toggle('action-but-dark')
  but.classList.toggle('action-but-light')
  body.classList.toggle('body-n')
  body.classList.toggle('body-l')
    
}


var date = new Date();
var hours = date.getHours();
В целом, мне нужно использовать эти класс листы, например, если время меньше либо равно 12(часам) то выполняется image.classList.*('image-light'), перепробовал разные методы, но что-то не получается

рони 26.01.2020 05:02

WildYT,
<!DOCTYPE html>
<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
 .footer {
     height: 100px;
     background-color: hsla(60, 100%, 50%, 1);
 }
 .light  .footer {
     background-color: hsla(36, 100%, 90%, 1);
 }
 .dark  .footer {
     background-color: hsla(210, 100%, 56%, 1);
 }
  </style>

  <script>
var current = "";

function toggleScheme()
{
var date = new Date();
var hours = date.getHours();
if(hours <= 12 && current != "light") {
    current && document.body.classList.remove(current)
    document.body.classList.add(current = "light");
}
else if(hours > 12 && current != "dark"){
    current && document.body.classList.remove(current)
    document.body.classList.add(current = "dark");
}
window.setTimeout(toggleScheme, 1000);
}
document.addEventListener( "DOMContentLoaded", toggleScheme)
  </script>
</head>
<body>
<div class="footer"></div>
</body>
</html>

WildYT 27.01.2020 00:00

хм, интересный подход, проверю, а так благодарю.

WildYT 27.01.2020 16:28

нет, не пашит

рони 27.01.2020 17:03

Цитата:

Сообщение от WildYT
нет, не пашит

не судьба значит!


Часовой пояс GMT +3, время: 06:42.