mirror of
https://ghfast.top/https://github.com/zsjy/halo-theme-dream2.0-plus.git
synced 2025-03-16 12:29:41 +08:00
1 line
4.2 KiB
JavaScript
1 line
4.2 KiB
JavaScript
(()=>{var __webpack_modules__={"./src/js/dprogress.js":()=>{eval("(function() {\r\n var DProgress = {}\r\n\r\n var Settings = DProgress.settings = {\r\n minimum: 0.08, // 最小值\r\n easing: 'linear', // 动画规律\r\n speed: 400, // 动画速度\r\n trickle: true, // 开启自动增量\r\n trickleSpeed: 200, // 缓慢增量\r\n parent: 'body',\r\n template: '<div class=\"bar\"></div>'\r\n }\r\n\r\n /**\r\n * Updates configuration.\r\n *\r\n * DProgress.configure({\r\n * minimum: 0.1\r\n * });\r\n */\r\n DProgress.configure = function(options) {\r\n var key, value\r\n for (key in options) {\r\n value = options[key]\r\n // eslint-disable-next-line no-prototype-builtins\r\n if (value !== undefined && options.hasOwnProperty(key)) Settings[key] = value\r\n }\r\n\r\n return this\r\n }\r\n\r\n /**\r\n * 进度状态,0-1\r\n */\r\n\r\n DProgress.status = null\r\n\r\n function clamp(n, min, max) {\r\n if (n < min) return min\r\n if (n > max) return max\r\n return n\r\n }\r\n\r\n /**\r\n * 开始进度条\r\n *\r\n * DProgress.start();\r\n *\r\n */\r\n DProgress.start = function() {\r\n if (!DProgress.status) DProgress.set(0)\r\n $('#dprogress').show()\r\n\r\n var work = function() {\r\n setTimeout(function() {\r\n if (!DProgress.status ||DProgress.status === 1) return\r\n DProgress.trickle()\r\n work()\r\n }, Settings.trickleSpeed)\r\n }\r\n\r\n if (Settings.trickle) work()\r\n\r\n return this\r\n }\r\n\r\n /**\r\n * 缓慢增量\r\n * @returns {undefined}\r\n */\r\n DProgress.trickle = function() {\r\n return DProgress.inc()\r\n }\r\n\r\n /**\r\n * 增量\r\n */\r\n DProgress.inc = function(amount) {\r\n var n = DProgress.status\r\n\r\n if (!n) {\r\n return DProgress.start()\r\n // eslint-disable-next-line no-empty\r\n } else if(n >= 1) {\r\n\r\n } else {\r\n if (typeof amount !== 'number') {\r\n if (n >= 0 && n < 0.2) { amount = 0.1 }\r\n else if (n >= 0.2 && n < 0.5) { amount = 0.04 }\r\n else if (n >= 0.5 && n < 0.8) { amount = 0.02 }\r\n else if (n >= 0.8 && n < 0.98) { amount = 0.005 }\r\n else { amount = 0 }\r\n }\r\n\r\n n = clamp(n + amount, 0, 0.98)\r\n return DProgress.set(n)\r\n }\r\n }\r\n\r\n /**\r\n * 设置进度状态 `0.0` to `1.0`.\r\n *\r\n * DProgress.set(0.4);\r\n * DProgress.set(1.0);\r\n */\r\n DProgress.set = function(n) {\r\n\r\n DProgress.status = clamp(n, Settings.minimum, 1)\r\n\r\n var progress = document.getElementById('dprogress')\r\n if (!progress) {\r\n progress = document.createElement('div')\r\n progress.id = 'dprogress'\r\n progress.innerHTML = Settings.template\r\n var bar = $(progress.querySelector('.bar'))\r\n bar.css('transition', `all ${Settings.speed}ms ${Settings.easing}`)\r\n if (DreamConfig.load_progress === 'center') {\r\n bar.css('margin', 'auto')\r\n }\r\n $(Settings.parent).prepend(progress)\r\n }\r\n progress.querySelector('.bar').style.width = `${n * 100}%`\r\n\r\n return this\r\n }\r\n\r\n /**\r\n * 进度条是否已经开始\r\n * @returns {boolean}\r\n */\r\n DProgress.isStarted = function() {\r\n return typeof DProgress.status === 'number'\r\n }\r\n\r\n /**\r\n * 完成进度条\r\n * @param force\r\n * @returns {DProgress|*}\r\n */\r\n DProgress.done = function() {\r\n try {\r\n DProgress.inc(0.3 + 0.5 * Math.random()).set(1)\r\n\r\n setTimeout(function() {\r\n $('#dprogress').hide()\r\n DProgress.status = undefined\r\n }, Settings.speed)\r\n return this\r\n } catch (e) {\r\n return this\r\n }\r\n }\r\n\r\n /**\r\n * 检查进度条是否显示\r\n */\r\n\r\n DProgress.isRendered = function() {\r\n return !!document.getElementById('dprogress')\r\n }\r\n\r\n\r\n window.DProgress = DProgress\r\n})()\n\n//# sourceURL=webpack://halo-theme-dream2.0-plus/./src/js/dprogress.js?")}},__webpack_exports__={};__webpack_modules__["./src/js/dprogress.js"]()})(); |