From 3e3d72d06049fe8c661850bce2ef536b27b663fc Mon Sep 17 00:00:00 2001 From: Mhykol Date: Wed, 5 Jun 2024 05:39:28 -0400 Subject: Modified for user generated scripts and css --- assets/js/blogitem.js | 128 ++++++++++++++++++++++++++++++-------------------- 1 file changed, 77 insertions(+), 51 deletions(-) (limited to 'assets/js/blogitem.js') diff --git a/assets/js/blogitem.js b/assets/js/blogitem.js index a827970..b79b9e5 100644 --- a/assets/js/blogitem.js +++ b/assets/js/blogitem.js @@ -1,58 +1,84 @@ -const body = { - content: document.getElementsByClassName('fullscreenImg')[0], - images: document.querySelectorAll('img:not([class])'), - buttons: `
` -} +// ! I am struggling to get this to run properly -const blogImage = () => { - body.content.style.opacity = 0 - body.images.forEach((img, index) => { - img.addEventListener('click', () => { - body.content.innerHTML = `${body.buttons}` - body.content.style.opacity = 1 - listener(index) - }) - }) -} - -const drawImage = (src) => { - try { - body.content.innerHTML = `${body.buttons}` - } catch (err) { - //console.log(src) +class BlogItem { + constructor() { + this.body = { + content: document.getElementsByClassName('fullscreenImg')[0], + images: document.querySelectorAll('img:not([class])'), + buttons: `
` + } } -} -const listener = (index) => { - const buttons = { - close: document.getElementsByClassName('closeFullscreenImage')[0], - left: document.getElementsByClassName('navleft')[0], - right: document.getElementsByClassName('navright')[0] + Init() { + this.#BlogItem() + this.#Prism() + new Menu().Init() } - buttons.close.addEventListener('click', () => { - body.content.style.opacity = 0 - setTimeout(() => { - body.content.innerHTML = '' - }, '1000') - }) - buttons.left.addEventListener('click', () => { - if (index > 0) { - console.log(index) - drawImage(body.images[index - 1].src) - listener(index - 1) - } else { - drawImage(body.images[body.images.length - 1].src) - listener(body.images.length) + + #EventListener(index) { + const buttons = { + close: document.getElementsByClassName('closeFullscreenImage')[0], + left: document.getElementsByClassName('navleft')[0], + right: document.getElementsByClassName('navright')[0] } - }) - buttons.right.addEventListener('click', () => { - if (index < body.images.length - 1) { - drawImage(body.images[index + 1].src) - listener(index + 1) - } else { - drawImage(body.images[0].src) - listener(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) + } } -blogImage() + +new BlogItem().Init() + -- cgit v1.2.3-70-g09d2