alexdaniels.me/assets/main.js

52 lines
2 KiB
JavaScript
Raw Normal View History

2026-06-09 13:26:08 -07:00
//import './stimulus_bootstrap.js';
2026-06-03 17:18:50 -07:00
import './styles/main.css';
const mobileMenu = () => {
const icon = document.querySelector('.icon-menu');
const menu = document.querySelector('.menu');
const header = document.querySelector('header');
const body = document.querySelector('body');
icon.addEventListener('click', (event) => {
icon.classList.toggle('open');
menu.classList.toggle('open');
header.classList.toggle('open');
body.classList.toggle('menu-open');
});
}
const album = () => {
const album = document.querySelector('#album');
if (album) {
const photos = album.querySelectorAll('.photo');
const openImageContainer = document.querySelector('#open-image');
const close = openImageContainer.querySelector('.close');
photos.forEach((photo) => {
photo.addEventListener('click', (event) => {
const dataset = photo.dataset;
openImageContainer.querySelector('#image').setAttribute('src', dataset.url);
openImageContainer.querySelector('#image').setAttribute('alt', dataset.alt);
openImageContainer.querySelector('#caption').innerHTML = dataset.caption;
openImageContainer.querySelector('#date').innerHTML = `Date Taken: ${dataset.date}`;
openImageContainer.querySelector('#location').innerHTML = `Location: ${dataset.location}`;
openImageContainer.querySelector('#equipment').innerHTML = `Camera Used: ${dataset.equipment}`;
openImageContainer.classList.toggle('open');
document.querySelector('body').classList.toggle('photo-open');
});
});
close.addEventListener('click', (event) => {
if (openImageContainer.classList.contains('open')) {
openImageContainer.classList.remove('open');
document.querySelector('body').classList.remove('photo-open');
}
})
}
}
2026-06-09 13:26:08 -07:00
mobileMenu();
album();