2024-05-07 12:31:42 +08:00

1 line
4.2 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

(()=>{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"]()})();