aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorSam Potts <sam@potts.es>2020-01-21 22:15:38 +0000
committerSam Potts <sam@potts.es>2020-01-21 22:15:38 +0000
commit89136bc2e6b3c8bf01c7642ae660d7e561263363 (patch)
tree994cff40d6e2297363c12d8b4c8061a7266a7c8e /src
parent7883792ccc2b9e12834a521b79b02b4a45df4d96 (diff)
parentb6d94e000f1c38772443281be50aca4c917adb37 (diff)
downloadplyr-89136bc2e6b3c8bf01c7642ae660d7e561263363.tar.lz
plyr-89136bc2e6b3c8bf01c7642ae660d7e561263363.tar.xz
plyr-89136bc2e6b3c8bf01c7642ae660d7e561263363.zip
Merge branch 'develop' of github.com:sampotts/plyr into develop
# Conflicts: # src/sass/components/video.scss
Diffstat (limited to 'src')
-rw-r--r--src/js/plugins/preview-thumbnails.js29
-rw-r--r--src/sass/base.scss3
2 files changed, 24 insertions, 8 deletions
diff --git a/src/js/plugins/preview-thumbnails.js b/src/js/plugins/preview-thumbnails.js
index 61021d64..930c055d 100644
--- a/src/js/plugins/preview-thumbnails.js
+++ b/src/js/plugins/preview-thumbnails.js
@@ -540,8 +540,8 @@ class PreviewThumbnails {
get thumbContainerHeight() {
if (this.mouseDown) {
- // Can't use media.clientHeight - HTML5 video goes big and does black bars above and below
- return Math.floor(this.player.media.clientWidth / this.thumbAspectRatio);
+ const { height } = fitRatio(this.thumbAspectRatio, { width: this.player.media.clientWidth, height: this.player.media.clientHeight });
+ return height;
}
return Math.floor(this.player.media.clientWidth / this.thumbAspectRatio / 4);
@@ -624,9 +624,9 @@ class PreviewThumbnails {
// Can't use 100% width, in case the video is a different aspect ratio to the video container
setScrubbingContainerSize() {
- this.elements.scrubbing.container.style.width = `${this.player.media.clientWidth}px`;
- // Can't use media.clientHeight - html5 video goes big and does black bars above and below
- this.elements.scrubbing.container.style.height = `${this.player.media.clientWidth / this.thumbAspectRatio}px`;
+ const { width, height } = fitRatio(this.thumbAspectRatio, { width: this.player.media.clientWidth, height: this.player.media.clientHeight });
+ this.elements.scrubbing.container.style.width = `${width}px`;
+ this.elements.scrubbing.container.style.height = `${height}px`;
}
// Sprites need to be offset to the correct location
@@ -639,14 +639,29 @@ class PreviewThumbnails {
const multiplier = this.thumbContainerHeight / frame.h;
// eslint-disable-next-line no-param-reassign
- previewImage.style.height = `${Math.floor(previewImage.naturalHeight * multiplier)}px`;
+ previewImage.style.height = `${previewImage.naturalHeight * multiplier}px`;
// eslint-disable-next-line no-param-reassign
- previewImage.style.width = `${Math.floor(previewImage.naturalWidth * multiplier)}px`;
+ previewImage.style.width = `${previewImage.naturalWidth * multiplier}px`;
// eslint-disable-next-line no-param-reassign
previewImage.style.left = `-${frame.x * multiplier}px`;
// eslint-disable-next-line no-param-reassign
previewImage.style.top = `-${frame.y * multiplier}px`;
}
+
+ fitRatio(ratio, outer) {
+ const targetRatio = outer.width / outer.height;
+
+ const result = {};
+ if (ratio > targetRatio) {
+ result.width = outer.width;
+ result.height = (1 / ratio) * outer.width;
+ } else {
+ result.height = outer.height;
+ result.width = ratio * outer.height;
+ }
+
+ return result;
+ }
}
export default PreviewThumbnails;
diff --git a/src/sass/base.scss b/src/sass/base.scss
index 71a5010d..9311f867 100644
--- a/src/sass/base.scss
+++ b/src/sass/base.scss
@@ -11,6 +11,7 @@
font-family: $plyr-font-family;
font-variant-numeric: tabular-nums; // Force monosace-esque number widths
font-weight: $plyr-font-weight-regular;
+ height: 100%;
line-height: $plyr-line-height;
max-width: 100%;
min-width: 200px;
@@ -22,7 +23,7 @@
video,
audio {
border-radius: inherit;
- height: auto;
+ height: 100%;
vertical-align: middle;
width: 100%;
}