Vue3+Element Plus 中可以使用 element-plus 的 el-color-picker 组件来实现取色器的功能,具体步骤如下:

  1. 在需要使用取色器的页面引入 el-color-picker 组件:
import { ElColorPicker } from 'element-plus';
  1. 在 template 中使用 el-color-picker 组件,并为其绑定 v-model 指令,将选中的颜色值存储到 data 中:
<el-color-picker v-model='color' />
data() {
  return {
    color: '#409EFF',
  };
},
  1. 使用 computed 属性将选中的颜色值作为 CSS 变量存储到全局样式中:
computed: {
  setThemeColor() {
    return {
      '--theme-color': this.color,
    };
  },
},
  1. 在全局样式中为需要变更颜色的元素设置 CSS 变量:
.header {
  background-color: var(--theme-color);
}

.nav {
  color: var(--theme-color);
}
  1. 最后,在需要更改颜色的地方使用 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>
Vue3+Element Plus: 使用取色器配置全局颜色风格

原文地址: https://www.cveoy.top/t/topic/myCp 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录