diff options
Diffstat (limited to 'src/js/utils')
| -rw-r--r-- | src/js/utils/browser.js | 1 | ||||
| -rw-r--r-- | src/js/utils/style.js | 40 | ||||
| -rw-r--r-- | src/js/utils/time.js | 6 | 
3 files changed, 44 insertions, 3 deletions
| diff --git a/src/js/utils/browser.js b/src/js/utils/browser.js index d574f683..11705074 100644 --- a/src/js/utils/browser.js +++ b/src/js/utils/browser.js @@ -5,6 +5,7 @@  const browser = {      isIE: /* @cc_on!@ */ false || !!document.documentMode, +    isEdge: window.navigator.userAgent.includes('Edge'),      isWebkit: 'WebkitAppearance' in document.documentElement.style && !/Edge/.test(navigator.userAgent),      isIPhone: /(iPhone|iPod)/gi.test(navigator.platform),      isIos: /(iPad|iPhone|iPod)/gi.test(navigator.platform), diff --git a/src/js/utils/style.js b/src/js/utils/style.js new file mode 100644 index 00000000..a8eb393b --- /dev/null +++ b/src/js/utils/style.js @@ -0,0 +1,40 @@ +// ========================================================================== +// Style utils +// ========================================================================== + +import is from './is'; + +/* function reduceAspectRatio(width, height) { +    const getRatio = (w, h) => (h === 0 ? w : getRatio(h, w % h)); +    const ratio = getRatio(width, height); +    return `${width / ratio}:${height / ratio}`; +} */ + +// Set aspect ratio for responsive container +export function setAspectRatio(input) { +    let ratio = input; + +    if (!is.string(ratio) && !is.nullOrUndefined(this.embed)) { +        ({ ratio } = this.embed); +    } + +    if (!is.string(ratio)) { +        ({ ratio } = this.config); +    } + +    const [x, y] = ratio.split(':').map(Number); +    const padding = (100 / x) * y; + +    this.elements.wrapper.style.paddingBottom = `${padding}%`; + +    // For Vimeo we have an extra <div> to hide the standard controls and UI +    if (this.isVimeo && this.supported.ui) { +        const height = 240; +        const offset = (height - padding) / (height / 50); +        this.media.style.transform = `translateY(-${offset}%)`; +    } + +    return { padding, ratio }; +} + +export default { setAspectRatio }; diff --git a/src/js/utils/time.js b/src/js/utils/time.js index 7c9860fd..2deccf65 100644 --- a/src/js/utils/time.js +++ b/src/js/utils/time.js @@ -5,9 +5,9 @@  import is from './is';  // Time helpers -export const getHours = value => parseInt((value / 60 / 60) % 60, 10); -export const getMinutes = value => parseInt((value / 60) % 60, 10); -export const getSeconds = value => parseInt(value % 60, 10); +export const getHours = value => Math.trunc((value / 60 / 60) % 60, 10); +export const getMinutes = value => Math.trunc((value / 60) % 60, 10); +export const getSeconds = value => Math.trunc(value % 60, 10);  // Format time to UI friendly string  export function formatTime(time = 0, displayHours = false, inverted = false) { | 
