1
0
Fork 0
mirror of https://github.com/jellyfin/jellyfin-web synced 2025-03-30 19:56:21 +00:00

Merge pull request #1903 from dmitrylyzo/return-of-the-scrollbar

Return permanent scrollbar
This commit is contained in:
Bill Thornton 2020-11-21 15:28:08 -05:00 committed by GitHub
commit f3d1b77058
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
10 changed files with 49 additions and 31 deletions

View file

@ -43,6 +43,7 @@ class BackdropScreensaver {
this.currentSlideshow.hide();
this.currentSlideshow = null;
}
return Promise.resolve();
}
}
/* eslint-enable indent */

View file

@ -105,13 +105,6 @@ function tryRemoveElement(elem) {
});
}
function hidePrePlaybackPage() {
const animatedPage = document.querySelector('.page:not(.hide)');
animatedPage.classList.add('hide');
// At this point, we must hide the scrollbar placeholder, so it's not being displayed while the item is being loaded
document.body.classList.remove('force-scroll');
}
function zoomIn(elem) {
return new Promise(resolve => {
const duration = 240;
@ -678,6 +671,7 @@ function tryRemoveElement(elem) {
destroyFlvPlayer(this);
appRouter.setTransparency('none');
document.body.classList.remove('hide-scroll');
const videoElement = this.#mediaElement;
@ -1348,7 +1342,8 @@ function tryRemoveElement(elem) {
this.#mediaElement = videoElement;
if (options.fullscreen) {
hidePrePlaybackPage();
// At this point, we must hide the scrollbar placeholder, so it's not being displayed while the item is being loaded
document.body.classList.add('hide-scroll');
}
// don't animate on smart tv's, too slow
@ -1361,8 +1356,9 @@ function tryRemoveElement(elem) {
}
});
} else {
// we need to hide scrollbar when starting playback from page with animated background
if (options.fullscreen) {
hidePrePlaybackPage();
document.body.classList.add('hide-scroll');
}
return Promise.resolve(dlg.querySelector('video'));

View file

@ -148,16 +148,21 @@ export default function () {
const elem = document.querySelector('.logoScreenSaver');
if (elem) {
const onAnimationFinish = function () {
elem.parentNode.removeChild(elem);
};
return new Promise((resolve) => {
const onAnimationFinish = function () {
elem.parentNode.removeChild(elem);
resolve();
};
if (elem.animate) {
const animation = fadeOut(elem, 1);
animation.onfinish = onAnimationFinish;
} else {
onAnimationFinish();
}
if (elem.animate) {
const animation = fadeOut(elem, 1);
animation.onfinish = onAnimationFinish;
} else {
onAnimationFinish();
}
});
}
return Promise.resolve();
};
}

View file

@ -45,6 +45,10 @@ function createMediaElement(instance, options) {
document.body.insertBefore(dlg, document.body.firstChild);
instance.videoDialog = dlg;
if (options.fullscreen) {
document.body.classList.add('hide-scroll');
}
if (options.fullscreen && dlg.animate && !browser.slow) {
zoomIn(dlg, 1).onfinish = function () {
resolve(videoElement);
@ -54,6 +58,11 @@ function createMediaElement(instance, options) {
}
});
} else {
// we need to hide scrollbar when starting playback from page with animated background
if (options.fullscreen) {
document.body.classList.add('hide-scroll');
}
resolve(dlg.querySelector('#player'));
}
});
@ -219,6 +228,7 @@ class YoutubePlayer {
}
destroy() {
appRouter.setTransparency('none');
document.body.classList.remove('hide-scroll');
const dlg = this.videoDialog;
if (dlg) {