mirror of https://gitgud.io/fatchan/jschan.git
parent
59ab7171e3
commit
f32aefee68
5 changed files with 81 additions and 2 deletions
@ -0,0 +1,77 @@ |
||||
//this is so normies dont complain about multiple tabs until i make something nicer
|
||||
window.addEventListener('DOMContentLoaded', (event) => { |
||||
|
||||
var thumbs = document.getElementsByClassName('post-file-src'); |
||||
|
||||
var toggle = function(thumb, exp) { |
||||
const close = exp.nextSibling; |
||||
if (thumb.style.display === 'none') { |
||||
thumb.style.display = ''; |
||||
exp.style.display = 'none'; |
||||
if (close) { |
||||
close.style.display = 'none'; |
||||
exp.pause(); |
||||
} |
||||
} else { |
||||
thumb.style.display = 'none'; |
||||
exp.style.display = ''; |
||||
if (close) { |
||||
close.style.display = ''; |
||||
exp.play(); |
||||
} |
||||
} |
||||
} |
||||
|
||||
var expand = function(e) { |
||||
e.preventDefault(); |
||||
const fileLink = this.firstChild; |
||||
const fileSrc = fileLink.href; |
||||
const type = this.previousSibling.lastChild.innerText.replace(/[\(\)]/g, '').split(', ')[0].trim(); |
||||
const thumbElement = fileLink.firstChild; |
||||
let expandedElement = thumbElement.nextSibling; |
||||
if (!expandedElement) { |
||||
fileLink.style.minWidth = fileLink.offsetWidth+'px'; |
||||
fileLink.style.minHeight = fileLink.offsetHeight+'px'; |
||||
let source; |
||||
switch(type) { |
||||
case 'image': |
||||
thumbElement.style.opacity = '0.5'; |
||||
expandedElement = document.createElement('img'); |
||||
source = expandedElement; |
||||
source.onload = function() { |
||||
thumbElement.style.opacity = '1'; |
||||
fileLink.appendChild(expandedElement); |
||||
toggle(thumbElement, expandedElement); |
||||
} |
||||
break; |
||||
case 'video': |
||||
expandedElement = document.createElement('video'); |
||||
close = document.createElement('div'); |
||||
close.innerText = 'Close video'; |
||||
close.addEventListener('click', function(e) { |
||||
e.preventDefault(); |
||||
e.stopPropagation(); |
||||
toggle(thumbElement, expandedElement); |
||||
}, true); |
||||
expandedElement.controls = 'true'; |
||||
source = document.createElement('source'); |
||||
expandedElement.appendChild(source); |
||||
fileLink.appendChild(expandedElement); |
||||
fileLink.appendChild(close); |
||||
toggle(thumbElement, expandedElement); |
||||
break; |
||||
deault: |
||||
break; //uh oh
|
||||
} |
||||
source.src = fileSrc; |
||||
} else { |
||||
toggle(thumbElement, expandedElement); |
||||
} |
||||
return false; |
||||
}; |
||||
|
||||
for (var i = 0; i < thumbs.length; i++) { |
||||
thumbs[i].addEventListener('click', expand, false); |
||||
} |
||||
|
||||
}); |
Loading…
Reference in new issue