赞
踩
需求:制作一个简单的H5邀请函页面,因为需要加载的图片较多,因此添加进度条来提高用户体验。
HTML
<div class="loading-area cell flex-col" v-if="rate<100">
<div class="progress">
<div class="rate">
<img src="../assets/img/progress.png" alt="">
</div>
<div class="mask" :style="{left: rate + '%'}"></div>
</div>
<span class="rate-num">{{rate}}%</span>
</div>
CSS
.loading-area { align-items: center; .progress { width: 600px; height: 18px; position: relative; margin: 386px auto 0; overflow: hidden; .rate { width: 100%; height: 100%; &>img { width: 100%; height: 100%; display: block; } } .mask { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-color: #28015A; transition: all .3s; } } .rate-num { font-size: 50px; color: #00FFFF; margin-top: 48px; font-weight: lighter; } }
如上图所示,可以根据 document.readyState的返回值来判断是否家在完成,虽然有人会说那进度条岂不是假的,也不完全是,虽然有另一种方法将首屏需要加载的图片放在一个数组中,然后通过循环调用图片的 onload事件来增加进度,虽然可以,但繁琐很多,以下就是直接使用readyState判断的方式。
JS
// 加载图片 进度条 this.timer = setInterval(() => { // 判断是否完成加载 let readyState = document.readyState=='complete'?true:false if (readyState&&this.rate>=99) { // 当页面完成了加载 并且进度条达到99% 关闭定时器 clearInterval(this.timer) } else if (readyState&&this.rate<99) { // 当页面完成了加载,但是进度没达到99% 让进度条过渡到98% 便于体验合理 this.rate = 98 } else if (!readyState&&this.rate<=98) { // 当页面还没加载完成 进度条还在98%以下 继续执行 } else if (!readyState&&this.rate==99) { // 当页面还没加载完成 进度条达到99% 让进度维持在这 等待页面加载完成 this.rate-- } this.rate++ }, 200)
以上就是一个基本简陋的进度条,仅仅是自己临时所想所写,望大佬们指点
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。