First off, I am a brand new coder. I have some very, very limited experience with HTML and CSS, but this is literally my first delve into any programming languages. I'm trying to make a display board and, in this particular section, I have several divs set position:absolute, stacked directly over top each other, and I want to bring each of them to the top at specific times of the day. Here's what I've got so far:
function setRemindersBoxes() {
let now = new Date();
let hour = now.getHours;
// sets the Z-Index of the reminders text and pic boxes to display the appropriate one, need to find out if it's possible to check against multiple values in a single comparison
// text boxes
if (hour == 6) {
document.getElementById('text-box-morning').style.zIndex = "1";
document.getElementById('text-box-lunch').style.zIndex = "0";
document.getElementById('text-box-dinner').style.zIndex = "0";
document.getElementById('text-box-evening').style.zIndex = "0";
document.getElementById('text-box-blank').style.zIndex = "0";
} else if (hour == 11) {
document.getElementById('text-box-morning').style.zIndex = "0";
document.getElementById('text-box-lunch').style.zIndex = "1";
document.getElementById('text-box-dinner').style.zIndex = "0";
document.getElementById('text-box-evening').style.zIndex = "0";
document.getElementById('text-box-blank').style.zIndex = "0";
} else if (hour == 5) {
document.getElementById('text-box-morning').style.zIndex = "0";
document.getElementById('text-box-lunch').style.zIndex = "0";
document.getElementById('text-box-dinner').style.zIndex = "1";
document.getElementById('text-box-evening').style.zIndex = "0";
document.getElementById('text-box-blank').style.zIndex = "0";
} else if (hour == 7) {
document.getElementById('text-box-morning').style.zIndex = "0";
document.getElementById('text-box-lunch').style.zIndex = "0";
document.getElementById('text-box-dinner').style.zIndex = "0";
document.getElementById('text-box-evening').style.zIndex = "1";
document.getElementById('text-box-blank').style.zIndex = "0";
} else {
document.getElementById('text-box-morning').style.zIndex = "0";
document.getElementById('text-box-lunch').style.zIndex = "0";
document.getElementById('text-box-dinner').style.zIndex = "0";
document.getElementById('text-box-evening').style.zIndex = "0";
document.getElementById('text-box-blank').style.zIndex = "1";
}
}
setInterval(setRemindersBoxes, 1000);
#text-box-blank,
#text-box-morning,
#text-box-lunch,
#text-box-dinner,
#text-box-evening {
background-color: black;
position: absolute;
height: 100%;
width: 100%;
}
<div id="reminders-text-container">
<div id="text-box-blank">
<p>Nothing at this time!</p>
</div>
<div id="text-box-morning">
<p>Good morning!</p>
</div>
<div id="text-box-lunch">
<p>Good afternoon!</p>
</div>
<div id="text-box-dinner">
<p>Dinner time!</p>
</div>
<div id="text-box-evening">
<p>Good evening!</p>
</div>
</div>
It doesn't appear to be setting the zIndex as I expected, and I don't see the Interval running on the div when I inspect the code in Chrome.
Could someone offer some pointers here? Thank you!
UPDATED CODE: I tried to clean it up a bit (still learning how to streamline things, I may edit it even further) and I figured out the problem was I simply wasn't calling the function after declaring it. It now runs in my browser, but I have to refresh the page for it to work, I can't seem to get the setInterval() function to run.
function setRemindersBoxes() {
let now = new Date();
let hour = now.getHours();
const textMorning = document.getElementById('text-box-morning');
const textLunch = document.getElementById('text-box-lunch');
const textDinner = document.getElementById('text-box-dinner');
const textEvening = document.getElementById('text-box-evening');
const textBlank = document.getElementById('text-box-blank');
const picMorning = document.getElementById('pics-box-blank');
const picLunch = document.getElementById('pics-box-blank');
const picDinner = document.getElementById('pics-box-blank');
const picEvening = document.getElementById('pics-box-blank');
const picBlank = document.getElementById('pics-box-blank');
// sets the Z-Index of the reminders text and pic boxes to display the appropriate one, need to find out if it's possible to check against multiple values in a single comparison
// text boxes
if(hour === 6 || hour === 7 || hour === 8) {
textLunch.style.display = 'none';
picLunch.style.display = 'none';
textDinner.style.display = 'none';
picDinner.style.display = 'none';
textEvening.style.display = 'none';
picEvening.style.display = 'none';
textBlank.style.display = 'none';
picBlank.style.display = 'none';
} else if(hour === 11 || hour === 12 || hour === 13) {
textMorning.style.display = 'none';
picMorning.style.display = 'none';
textDinner.style.display = 'none';
picDinner.style.display = 'none';
textEvening.style.display = 'none';
picEvening.style.display = 'none';
textBlank.style.display = 'none';
picBlank.style.display = 'none';
} else if(hour === 16 || hour === 17 || hour === 18) {
textMorning.style.display = 'none';
picMorning.style.display = 'none';
textLunch.style.display = 'none';
picLunch.style.display = 'none';
textEvening.style.display = 'none';
picEvening.style.display = 'none';
textBlank.style.display = 'none';
picBlank.style.display = 'none';
} else if(hour === 19 || hour === 20) {
textMorning.style.display = 'none';
picMorning.style.display = 'none';
textLunch.style.display = 'none';
picLunch.style.display = 'none';
textDinner.style.display = 'none';
picDinner.style.display = 'none';
textBlank.style.display = 'none';
picBlank.style.display = 'none';
}
}
setInterval(setRemindersBoxes(),1000);