程序员scholar 程序员scholar
首页
  • Java 基础

    • JavaSE
    • JavaIO
    • JavaAPI速查
  • Java 高级

    • JUC
    • JVM
    • Java新特性
    • 设计模式
  • Web 开发

    • Servlet
    • Java网络编程
  • Web 标准

    • HTML
    • CSS
    • JavaScript
  • 前端框架

    • Vue2
    • Vue3
    • Vue3 + TS
    • 微信小程序
    • uni-app
  • 工具与库

    • jQuery
    • Ajax
    • Axios
    • Webpack
    • Vuex
    • WebSocket
    • 第三方登录
  • 后端与语言扩展

    • ES6
    • Typescript
    • node.js
  • Element-UI
  • Apache ECharts
  • 数据结构
  • HTTP协议
  • HTTPS协议
  • 计算机网络
  • Linux常用命令
  • Windows常用命令
  • SQL数据库

    • MySQL
    • MySQL速查
  • NoSQL数据库

    • Redis
    • ElasticSearch
  • 数据库

    • MyBatis
    • MyBatis-Plus
  • 消息中间件

    • RabbitMQ
  • 服务器

    • Nginx
  • Spring框架

    • Spring6
    • SpringMVC
    • SpringBoot
    • SpringSecurity
  • SpringCould微服务

    • SpringCloud基础
    • 微服务之DDD架构思想
  • 日常必备

    • 开发常用工具包
    • Hutoll工具包
    • IDEA常用配置
    • 开发笔记
    • 日常记录
    • 项目部署
    • 网站导航
    • 产品学习
    • 英语学习
  • 代码管理

    • Maven
    • Git教程
    • Git小乌龟教程
  • 运维工具

    • Docker
    • Jenkins
    • Kubernetes
  • 算法笔记

    • 算法思想
    • 刷题笔记
  • 面试问题常见

    • 十大经典排序算法
    • 面试常见问题集锦
关于
GitHub (opens new window)
首页
  • Java 基础

    • JavaSE
    • JavaIO
    • JavaAPI速查
  • Java 高级

    • JUC
    • JVM
    • Java新特性
    • 设计模式
  • Web 开发

    • Servlet
    • Java网络编程
  • Web 标准

    • HTML
    • CSS
    • JavaScript
  • 前端框架

    • Vue2
    • Vue3
    • Vue3 + TS
    • 微信小程序
    • uni-app
  • 工具与库

    • jQuery
    • Ajax
    • Axios
    • Webpack
    • Vuex
    • WebSocket
    • 第三方登录
  • 后端与语言扩展

    • ES6
    • Typescript
    • node.js
  • Element-UI
  • Apache ECharts
  • 数据结构
  • HTTP协议
  • HTTPS协议
  • 计算机网络
  • Linux常用命令
  • Windows常用命令
  • SQL数据库

    • MySQL
    • MySQL速查
  • NoSQL数据库

    • Redis
    • ElasticSearch
  • 数据库

    • MyBatis
    • MyBatis-Plus
  • 消息中间件

    • RabbitMQ
  • 服务器

    • Nginx
  • Spring框架

    • Spring6
    • SpringMVC
    • SpringBoot
    • SpringSecurity
  • SpringCould微服务

    • SpringCloud基础
    • 微服务之DDD架构思想
  • 日常必备

    • 开发常用工具包
    • Hutoll工具包
    • IDEA常用配置
    • 开发笔记
    • 日常记录
    • 项目部署
    • 网站导航
    • 产品学习
    • 英语学习
  • 代码管理

    • Maven
    • Git教程
    • Git小乌龟教程
  • 运维工具

    • Docker
    • Jenkins
    • Kubernetes
  • 算法笔记

    • 算法思想
    • 刷题笔记
  • 面试问题常见

    • 十大经典排序算法
    • 面试常见问题集锦
关于
GitHub (opens new window)
npm

(进入注册为作者充电)

  • 原生微信小程序

  • uniapp多端开发

    • 快速入门

    • 内置组件

      • 视图容器

      • 基础内容

        • 图标组件
        • 文本组件
        • 富文本组件
        • 进度条组件
          • 1. 什么是 progress 组件?
          • 2. progress 组件的常用属性
            • 2.1 active 属性与 active-mode
          • 3. 带动画的进度条
      • 表单组件

      • 路由页面跳转

      • 媒体组件

      • 地图

      • 画布

      • 网页嵌入

      • 页面属性配置节点

      • nvue组件

      • 小程序组件

    • 扩展组件

  • 小程序开发
  • uniapp多端开发
  • 内置组件
  • 基础内容
scholar
2024-10-21
目录

进度条组件

# 进度条组件

progress 组件是 Uniapp 中用于显示进度条的核心组件,通常用于展示操作的进度(如文件上传、下载、数据加载等)。开发者可以通过 percent 属性动态控制进度条的进度,并通过 active 属性为进度条添加动画效果,提升用户体验。

# 1. 什么是 progress 组件?

progress 组件用于展示操作的完成进度,通常以百分比的形式显示。它在任务处理、文件传输、数据加载等场景中非常常见,能够直观地展示进度完成情况。开发者可以通过设置不同的属性,定制进度条的外观和行为。

使用场景

  • 文件上传/下载进度:展示文件传输过程中已完成的百分比。
  • 加载条:在数据加载或操作处理中展示当前进度。
  • 步骤进度:用于展示多步骤任务的完成情况,例如表单或任务的执行状态。

# 2. progress 组件的常用属性

progress 组件提供了一些常用的属性,开发者可以通过这些属性设置进度条的外观和行为:

属性名 类型 默认值 说明 平台差异说明
percent Number 无 进度百分比,范围为 0 到 100 无
show-info Boolean false 是否在进度条右侧显示百分比 无
border-radius Number/String 0 进度条的圆角大小,单位可以是 px 或 rpx 部分平台不支持
font-size Number/String 16 右侧百分比的字体大小,单位为 px 部分平台不支持
stroke-width Number 6 进度条线的宽度,单位为 px 无
activeColor Color #09BB07 已选择的进度条部分的颜色 无
backgroundColor Color #EBEBEB 未选择的进度条部分的颜色 无
active Boolean false 进度条是否具有从左到右的动画效果 无
active-mode String backwards 动画模式,backwards 表示动画从头播放,forwards 表示动画从上次进度接着播放 部分平台不支持
duration Number 30 每增加 1% 进度所需的时间,单位为毫秒 部分平台不支持
@activeend EventHandle 无 动画完成时触发的事件 部分平台不支持

# 2.1 active 属性与 active-mode

  • active:当设置为 true 时,进度条将从左到右播放动画。
  • active-mode:控制动画的播放方式,有两个值:
    • backwards:动画从 0 开始播放。
    • forwards:动画从上次停止的位置接着播放。

# 3. 带动画的进度条

以下案例展示了如何使用 progress 组件实现带有动画的进度条,并通过按钮动态设置和清除进度。

<template>
  <view class="container">
    <!-- 动态进度条,展示动画效果 -->
    <progress :percent="percent" show-info active activeColor="#4CAF50" backgroundColor="#EBEBEB" stroke-width="8"></progress>

    <!-- 控制进度条的按钮 -->
    <view class="progress-control">
      <button type="primary" @click="startProgress">开始进度</button>
      <button type="warn" @click="resetProgress">重置进度</button>
    </view>
  </view>
</template>

<script setup>
import { ref } from 'vue'

// 定义一个进度状态
const percent = ref(0)

// 逐步增加进度的函数
const startProgress = () => {
  percent.value = 0 // 每次开始前重置进度条
  const interval = setInterval(() => {
    if (percent.value >= 100) {
      clearInterval(interval) // 进度达到100%时,停止增加
    } else {
      percent.value += 5 // 每次增加5%的进度
    }
  }, 300) // 每300ms增加一次进度
}

// 重置进度条
const resetProgress = () => {
  percent.value = 0
}
</script>

<style scoped>
.container {
  padding: 20px;
}

.progress-control {
  display: flex;
  justify-content: space-around;
  margin-top: 20px;
}

button {
  margin: 0 10px;
}
</style>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52

代码解析

  1. 进度条动态变化:
    • percent 使用 ref 定义初始值为 0,表示进度条的当前百分比。
    • startProgress 函数通过 setInterval 每隔 300 毫秒增加 5% 的进度,直到进度达到 100%,并清除计时器。
    • resetProgress 函数将进度重置为 0。
  2. progress 组件:
    • percent 属性绑定动态进度值,显示当前的进度百分比。
    • active 属性用于启用进度条从左向右的动画效果,activeColor 控制进度条完成部分的颜色。
  3. 按钮交互:
    • 点击 "开始进度" 按钮触发 startProgress,进度条从 0% 动态增加到 100%。
    • 点击 "重置进度" 按钮调用 resetProgress,将进度条重置到 0%。

recording

编辑此页 (opens new window)
上次更新: 2025/02/01, 02:18:15
富文本组件
按钮组件

← 富文本组件 按钮组件→

Theme by Vdoing | Copyright © 2019-2025 程序员scholar
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式