广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >vue实现动态进度条效果
  • 761
分享到

vue实现动态进度条效果

2024-04-02 19:04:59 761人浏览 薄情痞子
摘要

本文实例为大家分享了Vue实现动态进度条效果的具体代码,供大家参考,具体内容如下 演示效果: 结构 progress/index.js const controller =

本文实例为大家分享了Vue实现动态进度条效果的具体代码,供大家参考,具体内容如下

演示效果:

结构

progress/index.js


const controller = {
  init: require('./controllers/html'),
  speed: require('./controllers/speed')
}
exports.init = controller.init
exports.speed = controller.speed

progress/controllers/html/index.js


exports.set = () => {
  let dom = document.createElement('div')
  dom.setAttribute('id', 'progress_speed')
  dom.classList.add('progress-box', 'progress-hide')
  dom.innerHTML = '<div class="progress progress-speed-hide" id="progress_box_speed"><div class="speed" style="width:0%;background: #f2f3f5;transition: 0.2s;"></div></div>'
  document.getElementById('app').insertBefore(dom, document.getElementById('app').firstChild)
  let Style = `
              .progress-box{
                width: 100%;
                height: 100%;
                transition: 0.4s;
                position: fixed;
                top: 0;
                left: 0;
                background: rgba(0,0,0,0.5);
                z-index:4002;
              }
              .progress {
                border-radius: 19px;
                background: #f2f3f5;
                width: 80%;
                height: 38px;
                position: fixed;
                top: calc(50% - 19px);
                left: calc(50% - 40%);
                z-index:2000;
                transition: 0.4s;
                opacity: 1;
              }
              .progress-hide{
                border-radius: 19px;
                width: 0%;
                height: 0%;
                top: calc(50% - 0%);
                left: calc(50% - 0%);
                transition: 0.2s;
                overflow: hidden;
              }
              .progress-speed-hide{
                width: 0%;
                height: 0px;
                transition: 0.6s;
                opacity: 0;
                overflow: hidden;
              }
              .speed {
                border-radius: 19px;
                background-image: -WEBkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);
                background-image: -o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);
                background-image: linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);
                height: 38px;
                -webkit-background-size: 40px 40px;
                background-size: 40px 40px
                width: 0%;
                transition: 0.3s;
                background-color:#409EFF;
                -o-animation: progress-bar-stripes 2s linear infinite;
                animation: progress-bar-stripes 2s linear infinite;
              }
              .speed-success{
                width: 100%;
                background-color: #67c23a;
              }
              @-webkit-keyframes progress-bar-stripes {
                  from {
                      background-position: 40px 0
                  }
              
                  to {
                      background-position: 0 0
                  }
              }
              
              @-o-keyframes progress-bar-stripes {
                  from {
                      background-position: 40px 0
                  }
              
                  to {
                      background-position: 0 0
                  }
              }
              
              @keyframes progress-bar-stripes {
                  from {
                      background-position: 40px 0
                  }
              
                  to {
                      background-position: 0 0
                  }
              }`
  let styleElement = document.getElementById('progress')
  if (!styleElement) {
    styleElement = document.createElement('style')
    styleElement.type = 'text/CSS'
    styleElement.id = 'progress'
    document.getElementsByTagName('head')[0].appendChild(styleElement)
    styleElement.appendChild(document.createTextnode(Style))
  }
}

progress/controllers/speed/index.js


exports.run = (time) => {
  document.getElementById('progress_speed').classList.remove('progress-hide')
  time = time * 100
  let dom = document.getElementById('progress_box_speed')
  dom.classList.remove('progress-speed-hide')
  dom.getElementsByClassName('speed')[0].classList.remove('speed-success')
  setTimeout(() => {
    dom.getElementsByClassName('speed')[0].setAttribute('style', 'width:' + time + '%')
  }, 10)
  if (time >= 100) {
    setTimeout(() => {
      dom.getElementsByClassName('speed')[0].classList.add('speed-success')
      dom.getElementsByClassName('speed')[0].setAttribute('style', 'width:100%')
      dom.classList.add('progress-speed-hide')
      setTimeout(() => {
        document.getElementById('progress_speed').classList.add('progress-hide')
        dom.getElementsByClassName('speed')[0].setAttribute('style', 'width:0%')
      }, 900)
    }, 1000)
  }
}

如何使用?

main.js中导入(根据你自己新建文件的路径为基准,这是我自己的路径)


import progress from './common/progress'

全局挂载


Vue.prototype.$progress = progress

结构

使用:


this.$progress.init.set()
this.$progress.speed.run('10.555555') // 这样进度条就走到10.555555%了

进度条走到100之后,会自动隐藏!可以全局挂载,然后各种需要进度条的地方再使用!

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。

--结束END--

本文标题: vue实现动态进度条效果

本文链接: https://www.lsjlt.com/news/135941.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • vue实现动态进度条效果
    本文实例为大家分享了vue实现动态进度条效果的具体代码,供大家参考,具体内容如下 演示效果: 结构 progress/index.js const controller = ...
    99+
    2022-11-12
  • Qt实现炫酷启动图动态进度条效果
    目录一、简述二、动效进度条1、光效进度条2、延迟到达进度条3、接口说明三、启动图1、实现思路2、背景图切换四、测试1、构造启动图2、背景图3、其他信息4、事件循环五、源码一、简述 最...
    99+
    2022-11-12
  • Vue实现进度条变化效果
    本篇文章用Vue简单实现进度条的变化,供大家参考,具体内容如下 先上一波效果图: 点击减后,每次减百分之十 减到百分之0后,减操作按钮隐藏 然后点击重头开始,恢复到初始状态 ...
    99+
    2022-11-12
  • bootstrap进度条动态加载效果怎么实现
    要实现进度条的动态加载效果,可以使用Bootstrap的进度条组件,并结合JavaScript来更新进度条的值。首先,在HTML中添...
    99+
    2023-08-24
    bootstrap
  • css+js怎么实现简单的动态进度条效果
    这篇文章主要介绍css+js怎么实现简单的动态进度条效果,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!   我们要知道,这里主要使用了css3的animation动画属性,首先将进...
    99+
    2022-10-19
  • AndroidProgressBar实现进度条效果
    本文实例为大家分享了Android ProgressBar实现进度条的具体代码,供大家参考,具体内容如下 1.XML布局 <RelativeLayout xmlns:andr...
    99+
    2022-11-13
  • JavaScript实现进度条效果
    本文实例为大家分享了JavaScript实现进度条效果的具体代码,供大家参考,具体内容如下 这次的效果图如下: 这个案例做起来不难,在我练习的时候,新知识点是使用window.ge...
    99+
    2022-11-12
  • vue+Ant Design进度条滑块与input联动效果实现
     需求:滑块进度与输入框为一致,默认值为80,最小不能小于30,最大为100  子组件: <template> <div class="p...
    99+
    2022-12-08
    vue Ant Design进度条滑块 Ant Design进度条滑块与input联动 ant-design-vue 动态添加input  Ant Design进度条联动
  • Android Studio实现进度条效果
    本文实例为大家分享了Android Studio实现进度条效果的具体代码,供大家参考,具体内容如下 实验作业 要求一个进度条,进度随机 效果图 xml代码 <?x...
    99+
    2022-11-12
  • Vue实现动态圆环百分比进度条
    最近在开发小程序的时候,碰到一个实现圆环百分比进度条的需求,类似如下设计图: 小白的我感觉实现起来有难度,于是上百度看看别人是怎么做的,结果没找到一个满意的,要不是静态的实现,就是...
    99+
    2022-11-12
  • iOS实现音频进度条效果
    前几天开发群里有一个老兄问了一个开发问题,他们的需求是要做一个类似音频进度条的东西,我感觉设计还不错,于是就写了个小demo供大家参考,在争得了他的同意的情况下写下这篇文章。 话不多...
    99+
    2022-06-05
    ios 音频 进度条
  • Android实现下载进度条效果
    目录最终效果和对比vivo商店效果分析1 - 计算进度分析2 - 绘制圆角矩形解决方案分析3 - 绘制文字和交汇手势拓展完整代码具体使用最终效果和对比vivo商店效果 vivo应用商...
    99+
    2022-11-12
  • JavaScript实现圆形进度条效果
    本文实例为大家分享了JavaScript实现圆形进度条效果的具体代码,供大家参考,具体内容如下 <!DOCTYPE html> <html lang="en"...
    99+
    2022-11-12
  • Android实现蜗牛进度条效果
    友好的界面可以给用户留下深刻印象,为APP加分,今天实现的这个进度条,以蜗牛爬动的方式告诉用户当前进度,体验比较棒,这里分享一下。这里创建一组帧动画作为进度条的标志,如下:<?xml version="1.0" encodin...
    99+
    2023-05-31
    android 进度条 蜗牛
  • python进程+进度条实现赛跑效果
    利用python多进程+进度条实现一个有意思的小程序import random import time import sys from multiprocessing import ...
    99+
    2023-01-30
    进度条 进程 效果
  • android实现动态显隐进度条
    本文实例为大家分享了android实现动态显隐进度条的具体代码,供大家参考,具体内容如下 调用 ProgressUtil.startProgress(this, new Prog...
    99+
    2022-11-12
  • 如何利用css3实现进度条效果及动态添加百分比
    这篇文章主要介绍了如何利用css3实现进度条效果及动态添加百分比,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。代码:<!DOCTYPE html><...
    99+
    2023-06-08
  • Android ProgressBar怎么实现进度条效果
    这篇文章主要介绍了Android ProgressBar怎么实现进度条效果的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Android ProgressBar怎么实现进度条效果文章都会有所收...
    99+
    2023-06-30
  • C#使用winform实现进度条效果
    本文实例为大家分享了C#使用winform实现进度条效果的具体代码,供大家参考,具体内容如下 1.例子 2.点击查询按钮代码 private void button8_Click(...
    99+
    2022-11-13
  • android实现简单进度条ProgressBar效果
    本文实例为大家分享了android实现简单进度条ProgressBar的具体代码,供大家参考,具体内容如下 记录一下今天学习的进度条ProgressBar 1、在布局文件中添加Pr...
    99+
    2022-11-13
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作