Optimize progress bar again

This commit is contained in:
qingwei.li 2016-12-17 15:37:32 +08:00
commit 7dc47cc4d4
2 changed files with 15 additions and 12 deletions

View file

@ -1,3 +1,7 @@
## 1.1.3
### Bug fixes
- Optimize progress bar again
## 1.1.2 ## 1.1.2
### Bug fixes ### Bug fixes
- fix failed `auto2top` in mobile - fix failed `auto2top` in mobile

View file

@ -77,8 +77,8 @@ export function renderArticle (content) {
* navbar * navbar
*/ */
export function renderNavbar (content) { export function renderNavbar (content) {
if (CACHE['navbar'] && CACHE['navbar'] === content) return if (CACHE.navbar && CACHE.navbar === content) return
CACHE['navbar'] = content CACHE.navbar = content
renderNavbar.rendered = true renderNavbar.rendered = true
if (content) renderTo('nav', marked(content)) if (content) renderTo('nav', marked(content))
@ -101,8 +101,8 @@ export function renderSidebar (content) {
} }
renderSidebar.rendered = true renderSidebar.rendered = true
if (CACHE['sidebar'] && CACHE['sidebar'] === content) return if (CACHE.sidebar && CACHE.sidebar === content) return
CACHE['sidebar'] = content CACHE.sidebar = content
renderTo('aside.sidebar', content) renderTo('aside.sidebar', content)
if (isToc) scrollActiveSidebar() if (isToc) scrollActiveSidebar()
toc = [] toc = []
@ -115,24 +115,23 @@ export function renderSidebar (content) {
export function renderLoading ({ loaded, total }) { export function renderLoading ({ loaded, total }) {
const num = Math.floor(loaded / total * 100) const num = Math.floor(loaded / total * 100)
if (!CACHE['loading']) { if (!CACHE.loading) {
const div = document.createElement('div') const div = document.createElement('div')
div.classList.add('progress') div.classList.add('progress')
document.body.appendChild(div) document.body.appendChild(div)
CACHE['loading'] = div CACHE.loading = div
} }
CACHE.loading.style.opacity = 1
CACHE.loading.style.width = num >= 95 ? '100%' : num + '%'
if (num >= 95) { if (num >= 95) {
clearTimeout(renderLoading.cacheTImeout) clearTimeout(renderLoading.cacheTImeout)
CACHE['loading'].style.width = '100%'
renderLoading.cacheTImeout = setTimeout(_ => { renderLoading.cacheTImeout = setTimeout(_ => {
CACHE['loading'].style.opacity = 0 CACHE.loading.style.opacity = 0
CACHE['loading'].style.width = '0%' CACHE.loading.style.width = '0%'
}, 200) }, 200)
} else {
CACHE['loading'].style.opacity = 1
CACHE['loading'].style.width = num + '%'
} }
} }