vue中封装一个进度条组件,无需引入,纯css

效果图是这样

下面直接上组件代码

html 复制代码
<template>
  <div 
    class="gradient-progress" 
    :style="{ '--progress': percent + '%', '--main-color': color }"
  ></div>
</template>

<script>
export default {
  props: {
    percent: { type: Number, default: 0, min: 0, max: 100 },
    color: { type: String, default: '#ff4444' }
  }
}
</script>

<style scoped>
.gradient-progress {
  --bg-color: #e0e0e0;
  width: 100%;
  height: 6px;
  background: var(--bg-color);
  /* border-radius: 999px; */
  overflow: hidden;
  position: relative;
}
.gradient-progress::after {
  content: '';
  position: absolute;
  left: 0; top: 0;
  height: 100%;
  width: var(--progress);
  background: linear-gradient(to right, 
    var(--main-color), 
    color-mix(in srgb, var(--main-color), white 50%)
  );
  /* border-radius: 999px; */
  transition: width 0.3s ease;
}
</style>

使用的时候也非常简单,引入组件后传入颜色以及进度就可以了

<GradientProgress :percent="60" color="#3273d8" class="progress" />

相关推荐
阿黎梨梨9 小时前
二分查找进阶:在排序数组中寻找元素的边界
javascript
昭昭颂桉a9 小时前
TypeScript 前端的必修课,从 JS 到 TS
开发语言·前端·javascript·typescript
用户938515635079 小时前
从零实现一个 Todos 应用:原生 Ajax + Node 服务,顺便吃透 JSON.stringify
前端·javascript·后端
英勇无比的消炎药9 小时前
少踩坑TinyVue插槽事件编码规范详解
vue.js
codeking9 小时前
3 步把 AI 桌面自动化从失控拉回可用
javascript·架构
神明不懂浪漫10 小时前
【第三章】CSS(一)——基础选择器、CSS的属性
前端·css·html·css3
代码不加糖10 小时前
MessageChannel是什么,有什么使用场景?
前端·javascript
用户0595401744610 小时前
localStorage清除策略踩坑实录:一个过期的token让我排查了3小时
前端·css
人无远虑必有近忧!10 小时前
fetch请求图片报跨域
前端·javascript
2401_8685347810 小时前
5G和4G接入网对比介绍
vue.js