网页页面实现加载进度条

这次给大家带来网页页面实现加载进度条,网页页面实现加载进度条的注意事项有哪些,下面就是实战案例,一起来看一下。

页面加载进度条最初我是在youtube上看到的,后面几乎在各大网站上都能见到它的身影,可以让用户在加载页面的时候不会对着完全空白的页面发呆,提升用户体验

但是从开发角度讲,这种进度条在真实性上确实很难把握,因为在逻辑代码加载完成之前,我们都不能统计到进度,而逻辑代码自身的进度也无法统计。另外,我们不可能监控到所有资源的加载情况。

事实上,用户并不是在乎你的页面究竟加载了百分之几,而真正关心的是离加载完还有多久,以及这个空白页面是没有加载完,还是加载完就是空白的。所以没我们需要去“模拟”一个进度条,在后端数据返回前利用一个假的动画效果模拟加载,在数据返回后读完进度条并且隐藏。

// progress-bar.vue  

export default { data() { return { isShow: true, // 是否显示进度条 val: 0, // 进度 } }, props: { /** * 每10毫秒自增幅度 */ step: { type: Number, default: 5, }, /** * 初始值 */ initVal: { type: Number, default: 0, }, /** * 到一定进度停止 */ stopVal: { type: Number, default: 80, }, /** * 进度条继续到成功 */ isOk: { type: Boolean, default: false, }, }, mounted() { // 初始化后加载进度,加载到百分之多少由stopVal决定 this.val = this.initVal let step = this.step let timer = setInterval(() => { this.val = this.val + step this.$el.style.width = this.val + '%' // 父组件数据加载完前进度条最多到stopVal的这个百分值 if (this.val >= this.stopVal) { clearInterval(timer) return } }, 10) }, watch: { /** * 监听组件props变化决定是否继续加载,一般在父组件数据加载完后改变此标志位 */ isOk() { let val = this.val let step = this.step let timer = setInterval(() => { val = val + step this.$el.style.width = val + '%' // 加载到百分百完成 if (val >= 100) { // 关闭定时器 clearInterval(timer) // 加载完成关闭进度条 this.isShow = false // 加载完成的回调 this.$emit('callback', 'load success') return } }, 10) }, }, } .progress-bar { position fixed top 0 height 6px width 0 background-color #999 } .fade { &-enter-active, &-leave-active { transition: all .3s } &-enter, &-leave-active { opacity: 0 } }

登录后复制

相信看了本文案例你已经掌握了方法,更多精彩请关注【创想鸟】其它相关文章!

推荐阅读:

JS自动计算酒店住宿费用

图片加载完毕前显示加载圈的效果

以上就是网页页面实现加载进度条的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2779676.html

(0)
上一篇 2025年3月8日 15:50:11
下一篇 2025年3月8日 15:50:20

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • node+express实现聊天室

    这次给大家带来node+express实现聊天室,node+express实现聊天室的注意事项有哪些,下面就是实战案例,一起来看一下。 本篇文章使用node+express+jquery写一个个性化聊天室,一起来get一下~(源码地址见文章…

    2025年3月8日 编程技术
    200
  • 实现五级地区点击后加载

    这次给大家带来实现五级地区点击后加载,五级地区点击后加载的注意事项有哪些,下面就是实战案例,一起来看一下。 在项目功能中需要录入户籍地和现居住地,为减少用户输入量,将使用树插件选择全国五级地区+输入框输入详细地址。这里优先使用了zTree树…

    2025年3月8日
    200
  • Vue枚举类型实现HTML

    这次给大家带来Vue枚举类型实现HTML,Vue枚举类型实现HTML的注意事项有哪些,下面就是实战案例,一起来看一下。 下拉框包含option中的Value和用来显示的选项, 一般后台都是使用的Value值,而不是显示在前台的选项 第一步:…

    2025年3月8日
    200
  • JS预加载图片的实现

    本文主要和大家分享js预加载图片的实现,希望能帮助到大家。 需求:项目中点击按钮,实现切换背景图功能。 问题:在切换css的background-image属性时,先加载图片后显示,会出现一瞬空白期。 解决方法:提前预加载背景图    首先…

    编程技术 2025年3月8日
    200
  • js实现带框的拖拽效果

    本文主要和大家分享js实现带框的拖拽效果,主要以代码的形式和大家分享,希望能帮助到大家。 nbsp;html>             Document   #box { width:100px; height:100px; back…

    编程技术 2025年3月8日
    200
  • JS实现定时器

    本文主要和大家分享JS实现定时器,主要以代码的形式和大家分享,希望能帮助到大家。 问题描述:定时执行一个事件 主要是解决重新开始的问题 html     start    stop 登录后复制 script window.addEventL…

    编程技术 2025年3月8日
    200
  • vue2.0的循环遍历怎么实现

    这次给大家带来vue2.0的循环遍历怎么实现,实现vue2.0循环遍历的注意事项有哪些,下面就是实战案例,一起来看一下。 demo: 登录后复制 引入图片,注意路径: import con1 from “@/assets/img/con01…

    编程技术 2025年3月8日
    200
  • jQuery+JSONP跨域请求如何实现

    这次给大家带来jQuery+JSONP跨域请求如何实现,实现jQuery+JSONP跨域请求的注意事项有哪些,下面就是实战案例,一起来看一下。   JSONP(JSON with Padding)是JSON的一种“使用模式”,可用于解决主流…

    2025年3月8日
    200
  • JS怎么实现满天星导航栏

    这次给大家带来JS怎么实现满天星导航栏,JS实现满天星导航栏的注意事项有哪些,下面就是实战案例,一起来看一下。 说明 分享一个满天星导航栏的效果,代码不多,但效果挺好看,先看看效果图吧。 解释 实现这个效果,需要掌握的知识不用很多,知道简单…

    2025年3月8日
    200
  • js实现跨域请求

    本文主要和大家分享js实现跨域请求,主要结合文字和代码,希望能帮助到大家。 1.安装flash,通过与flash交互,实现跨域,但此方法太麻烦,已经很少使用 2. 二是通过在同源域名下架设一个代理服务器来转发,JavaScript负责把请求…

    编程技术 2025年3月8日
    200

发表回复

登录后才能评论