当前位置: 首页 > web >正文

vue实现进度条带指针

效果最终

function calculatePointerPosition(value) {if (value < 2.6) return 12.5;  // 非常差位置if (value < 5.1) return 37.5;  // 较差位置if (value < 7.1) return 62.5;  // 良好位置return 90;  // 非常满意位置
}function getStatusText(value) {if (value < 2.6) return '非常差';if (value < 5.1) return '较差';if (value < 7.1) return '良好';return '非常满意';
}function getStatusColor(value) {if (value < 2.6) return '#F2F2F2';if (value < 5.1) return '#FF4D4F';if (value < 7.1) return '#FFAB2C';return '#67C23A';
}function getProgressBackground(value) {if (value < 2.6) return 'linear-gradient(90deg, rgba(242,242,242,0) 0%, #F2F2F2 100%)';if (value < 5.1) return 'linear-gradient(90deg, rgba(255,77,79,0) 0%, #FF4D4F 100%)';if (value < 7.1) return 'linear-gradient(90deg, rgba(255,171,44,0) 0%, #FFAB2C 100%)';return 'linear-gradient(90deg, rgba(103,194,58,0) 0%, #67C23A 100%)';
}function getStatusImage(value) {if (value < 2.6) return new URL("../../../assets/images/tijian/gray.png",import.meta.url).href;if (value < 5.1) return new URL("../../../assets/images/tijian/error.png",import.meta.url).href;if (value < 7.1) return new URL("../../../assets/images/tijian/waring.png",import.meta.url).href;return new URL("../../../assets/images/tijian/success.png",import.meta.url).href;
}

<!-- 进度条组件 --><div style="padding: 20px; background: #fff; border-radius: 8px; margin-top: 20px;"><!-- 指针在上方 --><div style="position: relative; height: 50px; margin-bottom: -5px;"><img:style="{position: 'absolute',left: `${(score/10)*100}%`,bottom: '10px',width: '60px',height: '28px',transform: 'translateX(-50%)'}":src="getStatusImage(score)"/></div><!-- 进度条 --><div style="position: relative; height: 10px; background: #f0f0f0; border-radius: 5px;"><div :style="{position: 'absolute',height: '100%',width: `${(score/10)*100}%`,borderRadius: '5px',background: getProgressBackground(score)}"></div></div><!-- 状态值在下方 --><div style="margin-top: 10px; display: flex; justify-content: space-between;"><span>非常差</span><span>较差</span><span>良好</span><span>非常满意</span></div><div style="margin-top: 30px; text-align: center; font-size: 14px;">当前状态: <span :style="{ color: getStatusColor(score) }">{{ getStatusText(score) }}</span></div></div>
http://www.xdnf.cn/news/5718.html

相关文章:

  • Elasticsearch 字段映射与数据类型
  • 面试专栏-03-Git的常用命令
  • 异构计算时代:混合编程的崛起与未来
  • 大型视频学习平台项目问题解决笔记
  • Megatron系列——流水线并行
  • KUKA机器人安装包选项KUKA.PLC mxAutomation软件
  • 产品功能更新迭代后需要重做算法备案吗?
  • Linux系统管理与编程20:Apache
  • 关于mac配置hdc(鸿蒙)
  • Nginx部署前端项目深度解析
  • 使用 Syncthing 在两台电脑之间同步文件:简单教程
  • 用drawdb.app可视化创建mysql关系表
  • 开源 RPA 工具深度解析与官网指引
  • 学习黑客Windows 病毒与威胁防护
  • Clickhouse 迁移到 Doris 的最佳实践
  • PyTorch 中的 Autograd 实现细节解析和应用
  • TCPIP详解 卷1协议 九 广播和本地组播(IGMP 和 MLD)
  • 力扣算法ing(69 / 100)
  • MongoDB使用x.509证书认证
  • 单片机Day10
  • 【Mysql基础】二、函数和约束
  • 职坐标IT培训:互联网行业核心技能精讲
  • Model.eval() 与 torch.no_grad() PyTorch 中的区别与应用
  • Scala和Spark的介绍
  • window server 2012安装sql server2008 r2
  • 每日c/c++题 备战蓝桥杯(洛谷P1387 最大正方形)
  • 工业协议跨界实录:零基础玩转PROFINET转EtherCAT主站智能网关
  • 网张实验操作-防火墙+NAT
  • 软考教材重点内容 信息安全工程师 第24章 工控安全需求分析与安全保护工程
  • 如何禁止chrome自动更新