You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Vue.js类内使用三元表达式:进度条达75%时添加样式

在Vue.js中为进度条动态添加危险样式

嘿,这个需求很常见,我来帮你轻松搞定!

我们只需要利用Vue的动态class绑定结合三元表达式,就能实现当进度达到75%时自动切换进度条颜色的效果。

直接修改模板实现

你原本的进度条代码里,class是静态值,我们需要把它改成Vue的:class(也就是v-bind:class的简写),这样就能根据条件动态添加类名。

进度百分比的计算式是(quoteCount / maxQuotes) * 100,我们直接用这个式子作为判断条件:当百分比≥75%时,添加bg-danger类,否则只保留基础的progress-bar类。

修改后的代码如下:

<div 
  :class="[
    'progress-bar', 
    (quoteCount / maxQuotes) * 100 >= 75 ? 'bg-danger' : ''
  ]" 
  role="progressbar" 
  :style="{width:(quoteCount / maxQuotes) * 100 + '%'}" 
  aria-valuenow="25" 
  aria-valuemin="0" 
  aria-valuemax="100"
> 
  {{quoteCount}} / {{maxQuotes}} 
</div>

更优雅的写法:抽成计算属性

如果觉得模板里的计算式有点冗余,还可以把百分比计算逻辑抽成Vue组件的计算属性,让模板更简洁,也方便后续复用这个计算结果:

// 在Vue组件的computed选项中添加
computed: {
  progressPercentage() {
    return (this.quoteCount / this.maxQuotes) * 100;
  }
}

然后模板就可以简化成这样:

<div 
  :class="[
    'progress-bar', 
    progressPercentage >= 75 ? 'bg-danger' : ''
  ]" 
  role="progressbar" 
  :style="{width: progressPercentage + '%'}" 
  aria-valuenow="25" 
  aria-valuemin="0" 
  aria-valuemax="100"
> 
  {{quoteCount}} / {{maxQuotes}} 
</div>

这样代码可读性更高,维护起来也更方便~

内容的提问来源于stack exchange,提问作者foliwe83

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.11 09:30:08