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

项目中使用简单的立体3D柱状图,不用引入外部组件纯css也能实现

在一些项目需求中,可能会遇到下面这种场景,3d柱状图来展示百分比,但是又不想引入外部组件,下面就用纯css给大家封装了一个组件

先赞后看,养成习惯   

<template><view class="lui-column-bg" :style="{width:width+'rpx',height:height+'rpx'}" :class="color"><view class="lui-inner" :class="colorCLass" :style="{ height: num + '%' }"></view><view class="text-box"><view class="label">{{ label }}</view><view class="value">{{ num ? num + "%" : "暂无" }}</view></view></view>
</template>
<script>export default {name: "Cylinder",props: {label: {type: String,default: ""},num: {type: Number,default: 50}, // 这个就是圆柱中的数据占比 +width: {type: Number,default: 110},height: {type: Number,default: 60}},data() {return {};},computed: {colorCLass() {if (this.num >= 51) {return "success-class";}if (this.num > 30 && this.num <= 50) {return "warning-class";}if (this.num > 0 && this.num <= 30) {return "danger-class";}if (this.num == 0) {return "null-class"}},color() {if (this.num >= 51) {return "success";}if (this.num > 30 && this.num <= 50) {return "warning";}if (this.num > 0 && this.num <= 30) {return "danger";}if (this.num == 0) {return "null"}},},mounted() {},methods: {}};
</script>
<style lang="less" scoped>.lui-column-bg {position: relative;width: 120rpx;height: 60rpx;margin: 0 10rpx;border-left: 2rpx solid red;border-right: 2rpx solid red;// margin: 100px;}.lui-column-bg:before {position: absolute;content: "";display: block;height: 40rpx;width: 100%;border-radius: 50%;top: -21rpx;z-index: 63;border: 2rpx solid red;}.lui-column-bg:after {position: absolute;content: "";display: block;height: 60rpx;width: 100%;border-radius: 50%;bottom: -30rpx;background-color: #e8e8e8;}.lui-inner {position: absolute;bottom: 0;width: 100%;height: 50%;text-align: center;}.lui-inner::before {position: absolute;content: "";display: block;height: 40rpx;width: 100%;// background-color: #eec967;border-radius: 50%;top: -21rpx;z-index: 11;}.lui-inner:after {position: absolute;z-index: 10;content: "";display: block;height: 60rpx;width: 100%;border-radius: 50%;background-color: #ff6868;bottom: -28rpx;}.text-box {position: absolute;z-index: 20;font-size: 14px;top: 50%;text-align: center;width: 100%;.label {margin-bottom: 10px;}.value {color: #fff;}}.danger-class {background-color: #f294a0;&::before {background-color: #e1677a;}&::after {background-color: #f294a0;}}.success-class {background-color: rgb(0, 156, 222);&::before {background-color: rgb(1, 111, 160, 1);}&::after {background-color: rgb(0, 156, 222);}}.warning-class {background-color: rgb(255, 165, 0, 1);&::before {background-color: rgb(177, 112, 0);}&::after {background-color: rgb(255, 165, 0, 1);}}.danger {color: #e1677a !important;border-color: #e1677a !important;&::before {border-color: #e1677a !important;}}.success {color: rgb(0, 156, 222) !important;border-color: rgb(0, 156, 222) !important;&::before {border-color: rgb(0, 156, 222) !important;}}.warning {.value {color: #fff;}color: rgb(255, 165, 0, 1);border-color: rgb(255, 165, 0, 1) !important;&::before {border-color: rgb(255, 165, 0, 1) !important;}}.null {.value {color: #000;}}
</style>

 在需要使用的地方直接引入使用就好了,只传百分比,宽高有需要再传


http://www.mrgr.cn/news/26111.html

相关文章:

  • ant.design【点击展示详细信息】
  • Beyond Compare 4 秘钥
  • Kubernetes从零到精通(10-服务Service)
  • springboot高校医务室管理系统-计算机毕业设计源码58407
  • oracle 用游标为什么会比for循环慢?
  • 《ChatTTS一键安装详细教程》
  • 晃电的危害及抗晃电的技术措施
  • 为何初创数字影像企业纷纷选择入驻孵化基地?
  • 【C++ 高频面试题】STL 你了解多少呢?vector 的底层实现原理
  • CloudFlare问题与CDN问题
  • 摊牌了!一文教会你轻松上手豆包MarsCode 编程助手!
  • 【生产力必备工具】GPU加速计算的首选云服务——蓝耘GPU(点击我的链接注册登录,可获50使用卷)
  • 软件设计基础知识(6)
  • ELK在Linux服务器下使用docker快速部署(超详细)
  • 苍穹外卖学习笔记(五)
  • 在项目管理这个行业里,PM都有啥高含金量的证书可以考?
  • Java语法1
  • 初识c++:入门基础
  • java重点学习-线程的并发安全(1)
  • 绝佳的知乎展示形式,助力品牌信息全面曝光