Fix video playback

This commit is contained in:
Andras Schmelczer 2022-09-23 22:45:51 +02:00
parent d4c8cb772f
commit 888cdf2c96
No known key found for this signature in database
GPG key ID: 0EA1BC97D0AB076E
2 changed files with 5 additions and 11 deletions

View file

@ -5,11 +5,6 @@
@include square(var(--large-icon-size));
@include absolute-center;
visibility: hidden;
& > svg {
@include square(var(--large-icon-size));
@include absolute-center;
}
}
video {
@ -21,7 +16,7 @@
z-index: 1;
}
&.loaded .loading {
&.loaded:not(.fully-loaded) .loading {
visibility: visible;
}

View file

@ -10,28 +10,27 @@ export class Video extends PageElement {
super(createElement(generate(options)));
this.video = this.query('video') as HTMLVideoElement;
this.video.addEventListener('click', this.startVideo.bind(this));
this.video.addEventListener('play', () =>
this.htmlRoot.classList.add('fully-loaded')
);
this.query('.start-button').addEventListener('click', this.startVideo.bind(this));
this.video.addEventListener('pause', this.stopVideo.bind(this));
this.video.addEventListener('pause', this.pauseVideo.bind(this));
}
private startVideo(e: Event) {
private startVideo() {
if (this.video.paused) {
this.query('.start-button').style.visibility = 'hidden';
this.htmlRoot.classList.add('loaded');
this.video.play();
this.video.controls = true;
e.preventDefault();
}
}
private stopVideo(e: Event) {
private pauseVideo() {
if (this.video.paused) {
this.query('.start-button').style.visibility = 'visible';
this.video.controls = false;
e.preventDefault();
}
}
}