Vue3+Element Plus: 使用取色器配置全局颜色风格
Vue3+Element Plus 中可以使用 element-plus 的 el-color-picker 组件来实现取色器的功能,具体步骤如下:
- 在需要使用取色器的页面引入 el-color-picker 组件:
import { ElColorPicker } from 'element-plus';
- 在 template 中使用 el-color-picker 组件,并为其绑定 v-model 指令,将选中的颜色值存储到 data 中:
<el-color-picker v-model='color' />
data() {
return {
color: '#409EFF',
};
},
- 使用 computed 属性将选中的颜色值作为 CSS 变量存储到全局样式中:
computed: {
setThemeColor() {
return {
'--theme-color': this.color,
};
},
},
- 在全局样式中为需要变更颜色的元素设置 CSS 变量:
.header {
background-color: var(--theme-color);
}
.nav {
color: var(--theme-color);
}
- 最后,在需要更改颜色的地方使用 setThemeColor 方法即可实现更改全局颜色风格。
完整代码如下:
<template>
<div>
<el-color-picker v-model='color' />
<button @click='setThemeColor'>更改主题颜色</button>
<div class='header'>Header</div>
<div class='nav'>Nav</div>
</div>
</template>
<script>
import { ElColorPicker } from 'element-plus';
export default {
components: {
ElColorPicker,
},
data() {
return {
color: '#409EFF',
};
},
computed: {
setThemeColor() {
return {
'--theme-color': this.color,
};
},
},
};
</script>
<style scoped>
.header {
background-color: var(--theme-color);
}
.nav {
color: var(--theme-color);
}
</style>
原文地址: https://www.cveoy.top/t/topic/myCp 著作权归作者所有。请勿转载和采集!