// ! I am struggling to get this to run properly class BlogItem { constructor() { this.body = { content: document.getElementsByClassName('fullscreenImg')[0], images: document.querySelectorAll('img:not([class])'), buttons: `
` } } Init() { this.#BlogItem() this.#Prism() new Menu().Init() } #EventListener(index) { const buttons = { close: document.getElementsByClassName('closeFullscreenImage')[0], left: document.getElementsByClassName('navleft')[0], right: document.getElementsByClassName('navright')[0] } buttons.close.addEventListener('click', () => { this.body.content.style.opacity = 0 setTimeout(() => { this.body.content.innerHTML = '' }, '1000') }) buttons.left.addEventListener('click', () => { if (index > 0) { this.#DrawImage(this.body.images[index - 1].src) this.#EventListener(index - 1) } else { this.#DrawImage(this.body.images[this.body.images.length - 1].src) this.#EventListener(this.body.images.length - 1) } }) buttons.right.addEventListener('click', () => { if (index < this.body.images.length - 1) { this.#DrawImage(this.body.images[index + 1].src) this.#EventListener(index + 1) } else { this.#DrawImage(this.body.images[0].src) this.#EventListener(0) } }) } #DrawImage(src) { try { this.body.content.innerHTML = `${this.body.buttons}` } catch (err) { console.error(err) } } #BlogItem() { this.body.content.style.opacity = 0 this.body.images.forEach((img, index) => { img.addEventListener('click', () => { this.body.content.innerHTML = `${this.body.buttons}` this.body.content.style.opacity = 1 this.#EventListener(index) }) }) } #Prism() { const head = document.getElementsByTagName('head')[0] const body = document.getElementsByTagName('body')[0] const link = document.createElement('link') const script = document.createElement('script') link.rel = 'stylesheet' link.type = 'text/css' link.href = `${window.location.origin}/css/prism.css` head.appendChild(link) script.src = `${window.location.origin}/js/prism.js` body.appendChild(script) } } new BlogItem().Init()