Привет всем.
как можно сделать в Js Display Block по часам?
<div class="08" style="display:block"><h3> lorem 60</h3> </div>
<div class="09" style="display:none"><h3> lorem 60</h3> </div>
<div class="10" style="display:none"><h3> lorem 60</h3> </div>
<div class="11" style="display:none"><h3> lorem 60</h3> </div>
<div class="12" style="display:none"><h3> lorem 60</h3> </div>
<div class="13" style="display:none"><h3> lorem 60</h3> </div>
<div class="14" style="display:none"><h3> lorem 60</h3> </div>
<div class="15" style="display:none"><h3> lorem 60</h3> </div>
<div class="16" style="display:none"><h3> lorem 60</h3> </div>
<div class="17" style="display:none"><h3> lorem 60</h3> </div>
<div class="default" style="display:none"><h3> lorem 60</h3> </div>
Например с 9:00 до 09:59 утра он должен классу 9 дать Display:block а диву с классом 8 дать Display:none.
А если например 18:00 до 07:59 дать display:block классу default и дисплэй ноне классу 17.
как такое можно реализовать? кто может помочь?
Блок будет зеленым c каждой 20 секунды по каждую 40вую.
const block = test;
calculate_timeout = seconds => {
now = new Date(), next = new Date();
next.setSeconds(seconds);
if(next.getTime() <= now.getTime())
next.setMinutes(next.getMinutes()+1);
return next.getTime() - now.getTime();
}
(function timer_callback() {
let now = new Date;
if(now.getSeconds() >= 20 && now.getSeconds() < 40){
block.classList.add('now');
setTimeout(timer_callback, calculate_timeout(40));
}else{
block.classList.remove('now');
setTimeout(timer_callback, calculate_timeout(20));
}
})();
#test.now{
background: green;
}
#test{
background: red;
}
<div id="test">test</div>
Это только для одного времени и одного элемента. Для остальных повторить не сложно. Для проверки, можно установить в строку if (hours >= 9 && hours < 10) {
свой интервал времени, по своему часовому поясу.
setInterval(function repeatTimer() {
let date = new Date();
let hours = date.getHours();
if (hours >= 9 && hours < 10) {
document.body.querySelector('div[class="09"]').style.display = 'block';
}
}, 1000);
<div class="08" style="display:block"><h3> lorem 60</h3> </div>
<div class="09" style="display:none"><h3> lorem 60</h3> </div>
<div class="10" style="display:none"><h3> lorem 60</h3> </div>
<div class="11" style="display:none"><h3> lorem 60</h3> </div>
<div class="12" style="display:none"><h3> lorem 60</h3> </div>
<div class="13" style="display:none"><h3> lorem 60</h3> </div>
<div class="14" style="display:none"><h3> lorem 60</h3> </div>
<div class="15" style="display:none"><h3> lorem 60</h3> </div>
<div class="16" style="display:none"><h3> lorem 60</h3> </div>
<div class="17" style="display:none"><h3> lorem 60</h3> </div>
<div class="default" style="display:none"><h3> lorem 60</h3> </div>
var date = new Date();
var time = date.getHours();
if ( 9 < time < 10){
// код
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Как загрузить html файл из сети в приложение, чтоб потом смотреть его оффлайн?
Возможно ли при помощи JQuery заставить <a> выполнять действие <input type="submit">? Если "да", то как и какие методы использовать?
Я открыл <p>, вложил туда <ul>, а чекер показывает, что закрывать <p> не надо, мол, и так все окПодскажите, пожалуйста