module.exports = { /** * Parse second to 00:00 format * * @param {Number} second * @return {String} 00:00 format */ secondToTime: (second) => { const add0 = (num) => num < 10 ? '0' + num : '' + num; const min = parseInt(second / 60); const sec = parseInt(second - min * 60); return add0(min) + ':' + add0(sec); }, /** * control play progress */ // get element's view position getElementViewLeft: (element) => { let actualLeft = element.offsetLeft; let current = element.offsetParent; const elementScrollLeft = document.body.scrollLeft + document.documentElement.scrollLeft; if (!document.fullscreenElement && !document.mozFullScreenElement && !document.webkitFullscreenElement) { while (current !== null) { actualLeft += current.offsetLeft; current = current.offsetParent; } } else { while (current !== null && current !== element) { actualLeft += current.offsetLeft; current = current.offsetParent; } } return actualLeft - elementScrollLeft; }, getScrollPosition () { return { left: window.pageXOffset || document.documentElement.scrollLeft || document.body.scrollLeft || 0, top: window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0 }; }, setScrollPosition ({left = 0, top = 0}) { if (this.isFirefox) { document.documentElement.scrollLeft = left; document.documentElement.scrollTop = top; } else { window.scrollTo(left, top); } }, /** * check if user is using mobile or not */ isMobile: /mobile/i.test(window.navigator.userAgent), isFirefox: /firefox/i.test(window.navigator.userAgent), isChrome: /chrome/i.test(window.navigator.userAgent), storage: { set: (key, value) => { localStorage.setItem(key, value); }, get: (key) => localStorage.getItem(key) } };