女人与黑狗做视频网站,门户网站建设哪专业,wordpress 界面 阴影,建设网站建设哪家便宜创建一个响应式圆柱形进度条组件
在现代网页设计中#xff0c;圆柱形进度条是一种非常流行的视觉元素#xff0c;用于展示数据的进度或状态。本文将介绍如何使用Vue.js和LESS创建一个响应式的圆柱形进度条组件。
组件结构
我们的组件由两部分组成#xff1a;一个圆柱形的…创建一个响应式圆柱形进度条组件
在现代网页设计中圆柱形进度条是一种非常流行的视觉元素用于展示数据的进度或状态。本文将介绍如何使用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组件它接收label和height两个props。label用于显示文本框中的标签而height用于控制进度条的高度。我们使用计算属性colorClass来根据height的值动态改变进度条的类从而改变其颜色。
使用组件
要使用这个组件你只需要在Vue.js项目中导入并注册它然后在模板中像使用其他Vue组件一样使用它。例如
Cylinder label完成率 :height75 /这将创建一个标签为“完成率”的圆柱形进度条进度为75%。
组件代码
代码如下
templatediv classlui-column-bgdivclasslui-inner:classcolorCLass:style{ height: height % }/divdiv classtext-boxp classlabel{{ label }}/pp classvalue{{ 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 langless 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我们可以轻松创建一个功能丰富且视觉吸引的圆柱形进度条组件。这个组件不仅响应式而且易于定制和扩展适用于各种不同的应用场景。希望这篇文章能帮助你在项目中实现类似的组件。