mirror of
https://github.com/ianramzy/decentralized-video-chat.git
synced 2024-11-23 18:49:21 +08:00
57 lines
1.7 KiB
JavaScript
57 lines
1.7 KiB
JavaScript
|
;(function () {
|
||
|
'use strict'
|
||
|
const modals = document.getElementsByClassName('modal')
|
||
|
const modalTriggers = document.getElementsByClassName('modal-trigger')
|
||
|
|
||
|
function openModal (el) {
|
||
|
if (el) {
|
||
|
document.body.classList.add('modal-is-active')
|
||
|
el.classList.add('is-active')
|
||
|
}
|
||
|
}
|
||
|
|
||
|
function closeModals () {
|
||
|
document.body.classList.remove('modal-is-active')
|
||
|
for (let i = 0; i < modals.length; i++) {
|
||
|
modals[i].classList.remove('is-active')
|
||
|
}
|
||
|
}
|
||
|
|
||
|
if (modals.length > 0 && modalTriggers.length > 0) {
|
||
|
for (let i = 0; i < modalTriggers.length; i++) {
|
||
|
let modalTrigger = modalTriggers[i]
|
||
|
let modal = document.getElementById(modalTrigger.getAttribute('aria-controls'))
|
||
|
if (modal) {
|
||
|
// Modal video
|
||
|
if (modalTrigger.hasAttribute('data-video')) {
|
||
|
if (modal.querySelector('iframe') !== null) {
|
||
|
modal.querySelector('iframe').setAttribute('src', modalTrigger.getAttribute('data-video'))
|
||
|
} else if (modal.querySelector('video') !== null) {
|
||
|
modal.querySelector('video').setAttribute('src', modalTrigger.getAttribute('data-video'))
|
||
|
}
|
||
|
}
|
||
|
modalTrigger.addEventListener('click', function (e) {
|
||
|
e.preventDefault()
|
||
|
if (modalTrigger.hasAttribute('aria-controls')) {
|
||
|
openModal(modal)
|
||
|
}
|
||
|
})
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
document.addEventListener('click', function (e) {
|
||
|
if (e.target.classList.contains('modal') || e.target.classList.contains('modal-close-trigger')) {
|
||
|
e.preventDefault()
|
||
|
closeModals()
|
||
|
}
|
||
|
})
|
||
|
|
||
|
document.addEventListener('keydown', function (event) {
|
||
|
var e = event || window.event
|
||
|
if (e.keyCode === 27) {
|
||
|
closeModals()
|
||
|
}
|
||
|
})
|
||
|
}())
|