103 lines
3.3 KiB
JavaScript
103 lines
3.3 KiB
JavaScript
// Scroll Nav
|
|
// Gilroy Hacks Website Source Code -> JS (https://gilroyhacks.com)
|
|
|
|
// Toggle the .pa-fixed-header class when the user
|
|
// scroll 100px
|
|
|
|
window.onscroll = () => {scrollNavbar()};
|
|
|
|
var scrollNavbar = () => {
|
|
// Target elements
|
|
const navBar = document.getElementById("navBar");
|
|
const links = document.querySelectorAll("#navBar a");
|
|
|
|
if (document.documentElement.scrollTop > 20) {
|
|
navBar.classList.add("pa-fixed-header");
|
|
|
|
// Change the color of links on scroll
|
|
for (let i = 0; i < links.length; i++) {
|
|
const element = links[i];
|
|
element.classList.add('text-black');
|
|
}
|
|
|
|
} else {
|
|
navBar.classList.remove("pa-fixed-header");
|
|
|
|
// Change the color of links back to default
|
|
for (let i = 0; i < links.length; i++) {
|
|
const element = links[i];
|
|
element.classList.remove('text-black');
|
|
}
|
|
}
|
|
}
|
|
|
|
// Email Replace
|
|
function setAttributes(elem, attrs) {
|
|
for(var key in attrs) {
|
|
elem.setAttribute(key, attrs[key]);
|
|
}
|
|
}
|
|
|
|
const tech_emails = document.querySelectorAll('.email-replace-tech');
|
|
tech_emails.forEach(entry => {
|
|
setAttributes(entry, {"href": "mailto:tech" + "@" + "gilroyhacks.com?subject=Gilroy Hacks", "target": "_blank"});
|
|
entry.innerHTML = "tech" + "@" + "gilroyhacks.com";
|
|
});
|
|
|
|
// Timer
|
|
// SRC: W3Schools https://www.w3schools.com/howto/howto_js_countdown.asp
|
|
// Set the date we're counting down to
|
|
const events = {
|
|
"Opening Ceremony": "Apr 15, 2023 10:00:00",
|
|
"Lunch": "Apr 15, 2023 12:00:00",
|
|
"Web Dev Workshop": "Apr 15, 2023 13:00:00",
|
|
"[REDACTED] Workshop": "Apr 15, 2023 15:00:00",
|
|
"Kahoot": "Apr 15, 2023 17:00:00",
|
|
"Hacking Ends": "Apr 16, 2023 14:00:00",
|
|
"Project Presentations": "Apr 16, 2023 14:30:00",
|
|
"Awards Ceremony" : "Apr 16, 2023 16:30:00"
|
|
}
|
|
var countDownDate = 0;
|
|
// Get today's date and time
|
|
var now = new Date().getTime();
|
|
|
|
// Test for the current event
|
|
for (const event in events) {
|
|
var testDate = new Date(events[event]).getTime();
|
|
if (testDate > countDownDate && now < testDate) {
|
|
countDownDate = testDate;
|
|
document.getElementById("event-name").innerHTML = event;
|
|
document.styleSheets[0].addRule('#timer:after','content: "'+ events[event] +'";');
|
|
break;
|
|
}
|
|
}
|
|
|
|
// Update the count down every 1 second
|
|
var x = setInterval(function() {
|
|
|
|
// Find the distance between now and the count down date
|
|
var distance = countDownDate - now;
|
|
|
|
// Time calculations for days, hours, minutes and seconds
|
|
var days = Math.floor(distance / (1000 * 60 * 60 * 24));
|
|
var hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
|
|
var minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));
|
|
// var seconds = Math.floor((distance % (1000 * 60)) / 1000);
|
|
|
|
// If the count down is finished, write some text
|
|
if (distance < 0) {
|
|
clearInterval(x);
|
|
document.getElementById("timer").innerHTML = "---";
|
|
document.getElementById("event-name").innerHTML = "Event Ended";
|
|
}
|
|
// Display the result in the element with id="timer"
|
|
else if (days != 0) {
|
|
document.getElementById("timer").innerHTML = days + "d " + hours + "h";
|
|
}
|
|
else if (hours != 0) {
|
|
document.getElementById("timer").innerHTML = hours + "h " + minutes + "m";
|
|
}
|
|
else {
|
|
document.getElementById("timer").innerHTML = minutes + "m";
|
|
}
|
|
}, 1000); |