【css】3d柱状图-vue组件版

news2024/9/21 13:45:16

创建一个响应式圆柱形进度条组件

在现代网页设计中,圆柱形进度条是一种非常流行的视觉元素,用于展示数据的进度或状态。本文将介绍如何使用Vue.js和LESS创建一个响应式的圆柱形进度条组件。

组件结构

我们的组件由两部分组成:一个圆柱形的进度条和一个文本框。进度条部分由.lui-column-bg类定义,它包含一个.lui-inner类的子元素,用于显示实际的进度。文本框部分由.text-box类定义,用于显示标签和值。
在这里插入图片描述

样式设计

我们使用LESS来定义组件的样式,以提高代码的可维护性和可读性。.lui-column-bg类设置了进度条的基本尺寸和背景色,同时使用:before:after伪元素来创建圆柱形的顶部和底部。.lui-inner类定义了进度条的内部颜色和高度,使用linear-gradient来创建渐变效果。

我们还定义了三个类(.danger-class.warning-class.success-class),这些类根据进度条的高度变化而变化,以显示不同的状态。这些类通过修改背景色和伪元素的背景色来实现不同的视觉效果。

Vue.js逻辑

在Vue.js中,我们定义了Cylinder组件,它接收labelheight两个props。label用于显示文本框中的标签,而height用于控制进度条的高度。我们使用计算属性colorClass来根据height的值动态改变进度条的类,从而改变其颜色。

使用组件

要使用这个组件,你只需要在Vue.js项目中导入并注册它,然后在模板中像使用其他Vue组件一样使用它。例如:

<Cylinder label="完成率" :height="75" />

这将创建一个标签为“完成率”的圆柱形进度条,进度为75%。

组件代码

代码如下:

<template>
  <div class="lui-column-bg">
    <div
      class="lui-inner"
      :class="colorCLass"
      :style="{ height: height + '%' }"
    ></div>
    <div class="text-box">
      <p class="label">{{ label }}</p>
      <p class="value">{{ height ? height + "%" : "" }}</p>
    </div>
  </div>
</template>
<script>
export default {
  name: "Cylinder",
  props: {
    label: { type: String, default: "" },
    height: { type: Number, default: 50 } // 这个就是圆柱中的数据占比 +
  },
  data() {
    return {};
  },
  computed: {
    colorCLass() {
      if (this.height >= 80) {
        return "success-class";
      }
      if (this.height >= 30) {
        return "warning-class";
      }
      return "danger-class";
    }
  },
  mounted() {},
  methods: {}
};
</script>
<style lang="less" scoped>
.lui-column-bg {
  position: relative;
  width: 100px;
  height: 140px;
  margin: 0 auto;
  background-color: #d1d1d1;
  margin: 100px;
}
.lui-column-bg:before {
  position: absolute;
  content: "";
  display: block;
  height: 20px;
  width: 100%;
  border-radius: 50%;
  top: -10.5px;
  z-index: 1;
  background-color: #e8e8e8;
}
.lui-column-bg:after {
  position: absolute;
  content: "";
  display: block;
  height: 30px;
  width: 100%;
  border-radius: 50%;
  bottom: -15px;
  background-color: #e8e8e8;
}
.lui-inner {
  position: absolute;
  bottom: 0;
  width: 100%;
  height: 50%;
  background-image: linear-gradient(to top, rgb(0, 255, 204), rgb(0, 199, 159));
  background-color: #eaaa00;
  text-align: center;
}
.lui-inner::before {
  position: absolute;
  content: "";
  display: block;
  height: 20px;
  width: 100%;
  background-color: #eec967;
  border-radius: 50%;
  top: -10.5px;
  z-index: 1;
}
.lui-inner:after {
  position: absolute;
  z-index: 10;
  content: "";
  display: block;
  height: 30px;
  width: 100%;
  border-radius: 50%;
  background-color: #eaaa00;
  bottom: -14px;
}
.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: #e1677a;
  &::before {
    background-color: #f294a0;
  }
  &::after {
    background-color: #e1677a;
  }
}
.success-class {
  background-color: #42b029;
  &::before {
    background-color: #86dd72;
  }
  &::after {
    background-color: #42b029;
  }
}
.warning-class {
  background-color: #eaaa00;
  &::before {
    background-color: #eec967;
  }
  &::after {
    background-color: #eaaa00;
  }
}
</style>

结论

通过结合Vue.js和LESS,我们可以轻松创建一个功能丰富且视觉吸引的圆柱形进度条组件。这个组件不仅响应式,而且易于定制和扩展,适用于各种不同的应用场景。希望这篇文章能帮助你在项目中实现类似的组件。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1984686.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【密码学】聚合签名

聚合签名是一种高级的数字签名技术&#xff0c;这种技术在多种场景下都非常有用&#xff0c;特别是在区块链、多方计算、分布式系统等领域中。下面让我来对它的基本概念、主要类型、实现步骤等来进行介绍。 一、聚合签名的基本概念 聚合签名到底是什么&#xff1f;有那么多数字…

四个开源的模拟人类记忆开源库

✨ 1: Memary Memary 是一个模拟人类记忆、增强AI代理的开源Python库。 Memary 是一个模拟人类记忆来提升人工智能代理性能的工具。其核心是通过集成多个模型&#xff08;如本地运行的 Llama 和 GPT 模型&#xff09;以及使用知识图谱、记忆流和实体知识存储来推进 AI 代理的…

前端(HTML + CSS)学成在线项目(仿)

头部区域 banner区域 精品推荐区域&#xff0c;这三个区域都是版心居中 头部区域分为&#xff1a;logo 导航 搜索 用户四个小块 鼠标悬停 :hover效果 banner区域分为&#xff1a;左侧导航 背景图 右侧课程表 鼠标悬停 :hover效果 精品推荐区域 鼠标悬停 :hover效果 精…

基于MATLAB车牌图像识别的设计与实现

摘 要 车牌图像识别系统是现代智能交通管理的重要组成部分之一。车牌识别系统使车辆管理更智能化&#xff0c;数字化&#xff0c;有效提升了交通管理的方便性和有效性。 车牌识别系统主要包括了图像采集、图像预处理、车牌定位、字符分割、字符识别等五大核心部分。本文主要介绍…

顺序表-数据结构

一、结构定义 顺序表是通常是数组&#xff0c;要求数据连续存储。顺序表又分为定长顺序表和变长顺序表&#xff0c;本文实现后者。 1、头文件 #include <stdio.h> #include <stdlib.h> 2、定长顺序表 #define MAX 100 定长顺序表结构 typedef struct SqList {…

五种创建springBoot项目的方法(本质上是三种)

文章目录 1. 使用https://start.aliyun.com/的服务器URL2. 使用https://start.spring.io/3. https://start.spring.io/使用官网4. 使用https://start.aliyun.com/5. 使用maven构建springboot项目5.1 点击maven&#xff0c;什么也不选&#xff0c;点击下一步5.2 修改名称和组ID&…

c语言第十天笔记

函数的概述 函数&#xff1a; 实现一定功能的&#xff0c;独立的代码模块。我们的函数一定是先定义&#xff0c;后使用。 使用函数的优势&#xff1a; 1. 我们可以通过函数提供功能给别人使用。当然我们也可以使用别人提供的函数&#xff0c;减少代码量。 2. 借助函数可以…

《学会 SpringMVC 系列 · 参数解析器 ArgumentResolvers》

&#x1f4e2; 大家好&#xff0c;我是 【战神刘玉栋】&#xff0c;有10多年的研发经验&#xff0c;致力于前后端技术栈的知识沉淀和传播。 &#x1f497; &#x1f33b; CSDN入驻不久&#xff0c;希望大家多多支持&#xff0c;后续会继续提升文章质量&#xff0c;绝不滥竽充数…

HQChart实战教程76-自定义Y轴刻度线

HQChart实战教程76-自定义Y轴刻度线 Y轴刻度线效果图HQChart插件源码地址步骤1. 注册事件2.回调事件eventdataobj数据说明完整实例源码Y轴刻度线 在K线图上,通过绘制一些特殊的刻度线来标识状态。我们可以通过SetOption里面设置,也可以通过回调函数动态设置。本教程是使用回…

微服务之SpringAMQP详解

目录 前言 1. 概述 2. Basic Queue简单队列模型 2.1 消息发送 2.2 消息接收 2.3 总结 3. WorkQueue模型 3.1 消息发送 3.2 消息接收 3.3 测试 3.4 消费预取限制 3.5 总结 4. 发布、订阅 5. Fanout 5.1 声明队列和交换机 5.2 消息发送 5.3 消息接收 5.4 测试 5…

SpringBoot集成阿里百炼大模型(初始demo) 原子的学习日记Day01

文章目录 概要下一章SpringBoot集成阿里百炼大模型&#xff08;多轮对话&#xff09; 原子的学习日记Day02 整体架构流程技术名词解释集成步骤1&#xff0c;选择大模型以及获取自己的api-key&#xff08;前面还有一步开通服务就没有展示啦&#xff01;&#xff09;2&#xff0c…

遗传算法与深度学习实战——生命模拟与进化论

遗传算法与深度学习实战——生命模拟与进化论 0. 前言1. 模拟进化1.1 代码实现1.2 代码改进 2. 达尔文进化论3. 自然选择和适者生存3.1 适者生存3.2 进化计算中的生物学 小结系列链接 0. 前言 生命模拟通过计算机模拟生物体的基本特征、遗传机制、环境互动等&#xff0c;试图模…

KMZ格式详解,javascript写入读取KMZ示例

还是大剑师兰特&#xff1a;曾是美国某知名大学计算机专业研究生&#xff0c;现为航空航海领域高级前端工程师&#xff1b;CSDN知名博主&#xff0c;GIS领域优质创作者&#xff0c;深耕openlayers、leaflet、mapbox、cesium&#xff0c;canvas&#xff0c;webgl&#xff0c;ech…

myeclipse 2020 下载 安装 汉化

1&#xff0c;解压 myeclipse 2020 压缩包到当前目录下&#xff1a; 点击此处蓝色字体下载压缩包 提取码 k3x9 2&#xff0c;鼠标右键 点击 myeclipse 2020.exe 选择 以管理员身份运行 &#xff1a; 3&#xff0c;等待加载&#xff1a; 4&#xff0c;点击 Next &#xff1a; 5…

【数学建模】2024华数杯A题思路(已完成)

视频预览&#xff1a; 2024华数杯A题已完成 作品连接&#xff1a;https://mbd.pub/o/bread/ZpmWmJxu 文章目录 一、题目二、分析三、代码示例 一、题目 机器臂是一种自动化装置&#xff0c;广泛应用于工业生产、精密操作、危险环境作业和物流等领域。关节角路径的优化设计对于…

Transformer在生成细胞数据上的应用

来自&#xff1a;scTranslator: A pre-trained large generative model for translating single-cell transcriptome to proteome 工程地址&#xff1a;https://github.com/TencentAILabHealthcare/scTranslator 在scTranslator中&#xff0c;有3个阶段&#xff1a;paired bu…

【xilinx】XCZU1CG-1SBVA484I FPGA 的 VCC_PSBATT 引脚的正确电压范围是多少?

我正在做一个涉及 XCZU1Cg-1SBVA484I FPGA IC 的项目。对于 PSBATT 部分&#xff0c;根据 DS925 文档&#xff0c;提到 VCC_PSBATT 电压范围为 1.2V ~ 1.5V。但在同一文档中&#xff0c;注释部分规定&#xff1a;Vcc_psbatt 最高可接受 1.89V。 根据 UG1085 文档&#xff0c;使…

HarmonyOS 习题(二)

1、在类Web开发范式自定义组件创建后&#xff0c;加入到Page组件树时&#xff0c;会触发以下哪一项回调。 A&#xff09;Onlnit B&#xff09;OnAttached C&#xff09;OnLayoutReady D&#xff09;OnDetached 答案&#xff1a;B 分析: onlnit:自定义组件初始化生命周期回调&a…

HTML常用标签和CSS的运用

目录 1.HTML标签 1.1 文档结构标签 1.2 文本格式标签 1.3 列表标签 1.4 链接和媒体标签 1.5 表格标签 1.6 表单标签 1.7 分区和布局标签 1.8 元数据标签 2.css样式 2.1 字体样式 2.2 文本样式 2.3 背景样式 2.4 边框样式 2.5 间距样式 2.6 宽度和高度 2.7 显示…

NLP——Transfromer 架构详解

Transformer总体架构图 输入部分&#xff1a;源文本嵌入层及其位置编码器、目标文本嵌入层及其位置编码器 编码器部分 由N个编码器层堆叠而成 每个编码器层由两个子层连接结构组成 第一个子层连接结构包括一个多头自注意力子层和规范化层以及一个残差连接 第二个子层连接结构包…