Files
docsify/src/core/render/progressbar.js
T
cinwell.liandGitHub 8352a1e489 refactor: build config (#408)
* refactor: build config

* chore: fix conflict

* fix: 404 page path
2018-03-03 22:51:27 +08:00

42 lines
725 B
JavaScript

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)
}
}