将elementUI,NaiveUI的progress环形进度条设置为渐变色

需求 :进度条要有一个渐变效果。

效果图:

NaiveUI和elementUI的官方progress组件都是只能设置一种颜色,不符合需求所以改一下。

其实NaiveUI和elementUI设置进度条的实现方式基本一样都是使用svg渲染出两个path,第一个是底色,第二个是进度条。

elementUI的:NaiveUi的:

可以看到唯一的区别就是 NaiveUi的path外层多包裹了一个g标签。

实现思路就是我们自己创建一个可以有过度色的svg来替换掉第二个path。

设置NaiveUI:

  <n-progress
    class="progressClass"
    :type="type"
    :height="h"
    :processing="processing"
    :percentage="dataset"
    :indicator-placement="indicatorPlacement"
    :rail-color="railColor"
    :offset-degree="offsetDegree"
  >
    // 创建一个svg
    <svg>
      <defs>
        <linearGradient id="gradient" x1="1" y1="0.4" x2="0.3" y2="1">
          // 设置过度
          <stop offset="0%" :style="{ 'stop-color': color }" stop-opacity="1"></stop>
          <stop offset="50%" :style="{ 'stop-color': color2 }" stop-opacity="1"></stop>
          <stop offset="100%" :style="{ 'stop-color': color3 }" stop-opacity="1"></stop>
        </linearGradient>
      </defs>
    </svg>
  </n-progress>
// css
<style scoped lang="scss">
// 找到第二个path并将他的stroke替换为我们创建的svg
.progressClass {
  position: relative;
  :deep(svg > g:nth-child(2) path) {
    stroke: url(#gradient) !important;
  }
}
</style>

设置emementUI的:

elementUI只需要直接找到第二个path替换掉就可以了,思路相同

// 找到第二个path并将他的stroke替换为我们创建的svg
.progressClass {
  position: relative;
  :deep(svg > path:nth-child(2)) {
    stroke: url(#gradient) !important;
  }
}

颜色:#D200FF #FEDB65 #00C2FF

ElementUI进度条是一种用于展示任务进度的组件。可以通过引入ElementUI库并使用<el-progress>标签来创建进度条。在标签中,可以设置一些属性来自定义进度条的样式和行为,比如设置进度条的类型、是否显示文字、进度百分比等。\[1\] 然而,需要注意的是,从开发角度来看,进度条的真实性是很难把握的。因为在逻辑代码加载完成之前,我们无法准确统计到进度,也无法监控到所有资源的加载情况。因此,进度条更多地是一种用户体验的改善,让用户能够感知到页面加载的进度,而不是准确反映实际加载进度。\[2\] 在使用ElementUI进度条时,可以根据需要设置不同的属性来满足需求。比如,可以设置进度条的类型(line、circle、dashboard)、是否在进度条内显示文字、进度百分比等。具体的属性和用法可以参考ElementUI的文档。\[3\] #### 引用[.reference_title] - *1* *2* [vue+elementui进度条组件应用写法_在vue中如何实现页面加载进度条组件](https://blog.youkuaiyun.com/qq_48965193/article/details/128150604)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [Vue element-ui表格嵌进度条](https://blog.youkuaiyun.com/xsq123/article/details/126683629)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值