38 lines
1014 B
Vue
38 lines
1014 B
Vue
<template>
|
||
<div id="video-overlay" class="video-overlay" @click="closeVideo">
|
||
<a class="video-overlay-close" @click.prevent="closeVideo">×</a>
|
||
</div>
|
||
</template>
|
||
|
||
<script>
|
||
export default {
|
||
props: {
|
||
videoUrl: {
|
||
type:String,
|
||
default:'https://www.youtube.com/embed/EW4ZYb3mCZk',
|
||
required:true,
|
||
},
|
||
},
|
||
methods: {
|
||
playVideo() {
|
||
const videoOverlay = document.querySelector("#video-overlay");
|
||
let iframeElement = document.createElement("iframe");
|
||
|
||
iframeElement.setAttribute("src", this.videoUrl);
|
||
iframeElement.style.width = "60%";
|
||
iframeElement.style.height = "80%";
|
||
|
||
videoOverlay?.classList.add("open");
|
||
videoOverlay.appendChild(iframeElement);
|
||
},
|
||
closeVideo() {
|
||
const videoOverlay = document.querySelector("#video-overlay.open"),
|
||
iframeElement = document.querySelector("#video-overlay.open iframe");
|
||
|
||
videoOverlay?.classList.remove("open");
|
||
iframeElement?.remove();
|
||
},
|
||
},
|
||
};
|
||
</script>
|