/* * main.js * functions to power my portfolio * Author: phga/teord * Date: 2019-10-18 * Version: 1.0 */ document.addEventListener("DOMContentLoaded", run); // global var to control the animation of the text var runTextAnimation = true; function run() { initialize(); } function initialize() { let welcome = document.getElementById("welcome"); let exhibit = document.getElementById("exhibition"); let notice = Array.from(document.getElementsByClassName("arrow")); flyingText(welcome); document.addEventListener("click", (e) => { let overlay = document.getElementById("info-box"); let curr = e.target; if (curr.className === "thumb") { runTextAnimation = false; hideElement(welcome); handleThumb(overlay, curr); } else if (curr.id === "btn-close") { runTextAnimation = true; flyingText(welcome); hideElement(overlay); } }); // remove the indicator on enter exhibit.addEventListener("mouseenter", () => { notice[0].remove(); notice[1].remove(); }, {once: true}); } function handleThumb(overlay, elem) { let imgName = elem.dataset.img; showOverlay(overlay, imgName); } // save last eventlistener func to remove it... var resize; function showOverlay(overlay, imgName) { let info = getInfoForImg(imgName); let magni = document.getElementById("zoom"); let infoTable = document.getElementById("img-description"); let img = document.createElement("img"); // call my zoom function (zoom.js) // fix for the zoom factor after resize (timeout to reduce calls) let waitResize; // remove for old img_names (named func required) window.removeEventListener("resize", resize); resize = () => { clearTimeout(waitResize); waitResize = setTimeout(() => {zoom(0.4, imgName)},50); }; window.addEventListener("resize", resize); img.addEventListener("load", () => {zoom(0.4, imgName)}); img.src = `/inc/images/${imgName}.jpg`; img.id = imgName; img.alt = imgName; magni.innerHTML = ""; magni.appendChild(img); infoTable.innerHTML = `