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

embedded/2024/10/19 13:23:20/

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

在现代网页设计中,圆柱形进度条是一种非常流行的视觉元素,用于展示数据的进度或状态。本文将介绍如何使用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"><divclass="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.ppmy.cn/embedded/88827.html

相关文章

Golang之OpenGL(一)

使用OpenGL实现窗口中绘制三角形&#xff08;纯色|彩色&#xff09;、正方形&#xff08;变色&#xff09; 一、简单实现窗口绘制三角形二、绘制的多颜色三角形&#xff08;基于 ‘ 简单实现窗口绘制三角形 ’ &#xff09;1、在顶点着色器和片段着色器中添加了颜色的输入和输出…

2023华为od机试C卷【掌握单词的个数】Python

2023华为od机试C卷【掌握单词的个数】 问题分析 输入内容&#xff1a; 具体的单词数量和单词列表。一个包含字母和 ? 的字符串&#xff0c;该字符串表示可以用来构词的字符。 目标&#xff1a; 计算哪些单词可以由给定字符以及 ?&#xff08;作为通配符&#xff09;构成。 …

关于Docker Engine AuthZ 插件授权绕过漏洞 (CVE-2024-41110)

一、漏洞概述 漏洞名称&#xff1a;Docker Engine AuthZ 插件授权绕过漏洞 &#xff08;CVE-2024-41110&#xff09; 漏洞等级&#xff1a;高危 漏洞描述&#xff1a;DockerEngine是Docker的核心组件&#xff0c;是一 个开源的容器引擎&#xff0c;负责构建、运行和管理容器…

文档在线预览:keking/kkFileView踩坑记

文章目录 一、概述1、官方文档2、使用 二、部署服务1、传统部署方式&#xff08;1&#xff09;环境要求&#xff08;2&#xff09;生成部署包 2、docker部署方式 三、踩坑1、预览并发问题&预览首次打开慢2、字体问题乱码3、水印问题4、使用nginx代理5、docker部署指定配置 …

AWD神器—watchbird后台rce挖掘

简介 在传统的AWD攻防中&#xff0c;Waf扮演着重要的角色&#xff0c;Watchbird作为一款专门为AWD而生的PHP防火墙&#xff0c;具有部署简单&#xff0c;功能强大等特点&#xff0c;一出世便受到了广大CTFer的喜爱&#xff0c;目前在GitHub上已有600多star。本篇则详细介绍如果…

华为Atlas 500 智能小站+鸿蒙AI大算力边缘计算解决方案

Atlas 500 智能小站鸿蒙大算力解决方案 技术规格 表3-1 技术规格 项目 说明 处理器 海思Hi3559A处理器 双核ARM Cortex A731.6GHz&#xff0c;32KB I-Cache&#xff0c;64KB D-Cache /512KB L2 cache双核ARM Cortex A531.2GHz&#xff0c;32KB I-Cache&#xff0c;32KB D-C…

OS_操作系统的运行环境

2024.06.11:操作系统的运行环境学习笔记 第3节 操作系统的运行环境 3.1 操作系统引导3.2 操作系统内核3.2.1 内核资源管理3.2.2 内核基本功能 3.3 CPU的双重工作模式3.3.1 CPU处于用户态&#xff08;目态&#xff09;3.3.2 CPU处于内核态&#xff08;管态&#xff09; 3.4 特权…

2.4-结构化并发:协程的结构化异常管理

文章目录 协程结构化异常流程协程结构化异常流程和取消流程的区别子协程异常为什么要连带取消父协程&#xff1f; CoroutineExceptionHandler异常协程异常的最后一道拦截&#xff1a;CoroutineExceptionHandlerCoroutineExceptionHandler 为什么只能设置给最外层协程才有效&…