• css实现渐变电量效果柱状图


    我们通常的做法就是用echarts来实现

    比如

    echarts象形柱图实现电量效果柱状图

    接着我们实现进阶版,增加渐变效果

    echarts分割柱形图实现渐变电量效果柱状图

    接着是又在渐变的基础上,增加了背景色块的填充

    echarts实现渐变电量效果柱状图

    其实思路是一致的,就是效果层的叠加

    以上,就是在项目中实际会用到的效果

    如果你只是想做一个静态demo,不需要数据,不需要后台,这里教你一个简单快捷的方法,用css实现!

    实现效果如下↓

    相关代码:

    1. <template>
    2. <!--css实现电量效果-->
    3. <div class="panel">
    4. <div class="content">
    5. <div class="legend">
    6. <div class="legend-item">
    7. <span class="legend-icon" style="background:linear-gradient(0deg,rgba(247,240,42,1),rgba(255,84,84,1));"></span>
    8. <span class="legend-label">报修</span>
    9. </div>
    10. <div class="legend-item">
    11. <span class="legend-icon" style="background:linear-gradient(0deg,rgba(22,233,16,1),rgba(22,230,247,1));"></span>
    12. <span class="legend-label">维护</span>
    13. </div>
    14. </div>
    15. <div class="chart">
    16. <div class="chart-item" v-for="(item,index) in datas">
    17. <div class="chart-bg">
    18. <span class="char-bg-item" v-for="n in 12" v-bind:style="char_bg_item_style1(item,n)"></span>
    19. </div>
    20. <div class="chart-bg">
    21. <span class="char-bg-item" v-for="n in 12" v-bind:style="char_bg_item_style2(item,n)"></span>
    22. </div>
    23. <div class="chart-label">{{item.label}}</div>
    24. </div>
    25. </div>
    26. </div>
    27. </div>
    28. </template>
    29. <script>
    30. import gradient from "@/lib/GradientColor.js";
    31. export default {
    32. name: "BatteryCss",
    33. data() {
    34. return {
    35. maxValue: 30,
    36. datas: [
    37. { label: "2023/01", fix: 10, mainten: 12 },
    38. { label: "2023/02", fix: 8, mainten: 6 },
    39. { label: "2023/03", fix: 4, mainten: 8 },
    40. { label: "2023/04", fix: 7, mainten: 5 },
    41. { label: "2023/05", fix: 4, mainten: 6 },
    42. { label: "2023/06", fix: 2, mainten: 3 },
    43. ],
    44. };
    45. },
    46. methods: {
    47. char_bg_item_style1(item, n) {
    48. if (n <= 12 - item.fix) {
    49. return {
    50. backgroundColor: "#D9D9D9",
    51. };
    52. } else {
    53. return {
    54. //渐变色
    55. backgroundColor: gradient("#F0E82C", "#EF7E5D", 12, n),
    56. };
    57. }
    58. },
    59. char_bg_item_style2(item, n) {
    60. if (n <= 12 - item.mainten) {
    61. return {
    62. backgroundColor: "#D9D9D9",
    63. };
    64. } else {
    65. return {
    66. //渐变色
    67. backgroundColor: gradient("#25E2F2", "#19E419", 12, n),
    68. };
    69. }
    70. },
    71. },
    72. };
    73. </script>
    74. <style scoped>
    75. .panel {
    76. width: 500px;
    77. background: #1c242b;
    78. }
    79. .legend {
    80. height: 32px;
    81. width: 100%;
    82. display: flex;
    83. flex-direction: row;
    84. justify-content: center;
    85. align-items: center;
    86. line-height: 32px;
    87. }
    88. .legend-item {
    89. width: 80px;
    90. }
    91. .legend-icon {
    92. width: 18px;
    93. height: 12px;
    94. border-radius: 2px;
    95. display: inline-block;
    96. }
    97. .legend-label {
    98. font-size: 12px;
    99. color: #aaa;
    100. margin-left: 10px;
    101. }
    102. .chart {
    103. width: 100%;
    104. height: calc(100% - 32px);
    105. display: flex;
    106. flex-direction: row;
    107. justify-content: space-around;
    108. align-items: center;
    109. }
    110. .chart-item {
    111. width: 72px;
    112. height: 124px;
    113. }
    114. .chart-bg {
    115. position: relative;
    116. top: 14px;
    117. left: 14px;
    118. width: 18px;
    119. height: 81px;
    120. display: flex;
    121. flex-direction: column;
    122. justify-content: space-between;
    123. float: left;
    124. margin-left: 2px;
    125. }
    126. .char-bg-item {
    127. height: 4px;
    128. width: 18px;
    129. display: inline-block;
    130. background: #d9d9d9;
    131. }
    132. .chart-label {
    133. height: calc(124px - 81px);
    134. font-size: 14px;
    135. color: #a5a6a6;
    136. position: relative;
    137. top: 20px;
    138. text-align: center;
    139. }
    140. </style>

    版本信息↓

    思路很简单,就是循环画一个一个小块块

  • 相关阅读:
    申请ISO50430建筑体系认证有哪些注意问题?
    Leetcode 450. 删除二叉搜索树中的节点
    【考研】数据结构考点——希尔排序
    基本的网络设备:集线器、中继器、网桥、交换机、路由器、防火墙等
    B站数据,怎样查看B站带货商品数据?
    第十八章《JDBC》第2节:JDBC编程
    面试问题?
    C++数据结构X篇_25_堆排序(不稳定的排序)
    sublime 文件编辑器使用快捷键
    类的继承C++
  • 原文地址:https://blog.csdn.net/rear0312/article/details/132685188