mirror of https://github.com/IoTcat/docsify.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
41 lines
725 B
41 lines
725 B
import * as dom from '../util/dom' |
|
|
|
let barEl |
|
let timeId |
|
|
|
/** |
|
* Init progress component |
|
*/ |
|
function init() { |
|
const div = dom.create('div') |
|
|
|
div.classList.add('progress') |
|
dom.appendTo(dom.body, div) |
|
barEl = div |
|
} |
|
/** |
|
* Render progress bar |
|
*/ |
|
export default function ({loaded, total, step}) { |
|
let num |
|
|
|
!barEl && init() |
|
|
|
if (step) { |
|
num = parseInt(barEl.style.width || 0, 10) + step |
|
num = num > 80 ? 80 : num |
|
} else { |
|
num = Math.floor(loaded / total * 100) |
|
} |
|
|
|
barEl.style.opacity = 1 |
|
barEl.style.width = num >= 95 ? '100%' : num + '%' |
|
|
|
if (num >= 95) { |
|
clearTimeout(timeId) |
|
timeId = setTimeout(_ => { |
|
barEl.style.opacity = 0 |
|
barEl.style.width = '0%' |
|
}, 200) |
|
} |
|
}
|
|
|