取色器

v-color-picker 允许您使用各种输入方法选择颜色。

用例

Color pickers(取色器) - 图1

API

从下面选择您想要的组件,并查看可用的属性、插槽、事件和函数。

Color pickers(取色器) - 图2

示例

下面是一些简单到复杂的例子。

模型

v-color-picker 使用 v-model 属性来控制显示的颜色。它支持十六进制字符串,如 #FF00FF#FF00FF00,对象代表 RGBAHSLAHSVA 值。

template script


  1. <template>
  2. <v-container>
  3. <v-row>
  4. <v-col
  5. cols="12"
  6. md="4"
  7. >
  8. <v-btn
  9. v-for="t in types"
  10. :key="t"
  11. class="my-4"
  12. block
  13. @click="type = t"
  14. >{{ t }}</v-btn>
  15. </v-col>
  16. <v-col
  17. class="d-flex justify-center"
  18. >
  19. <v-color-picker v-model="color"></v-color-picker>
  20. </v-col>
  21. <v-col
  22. cols="12"
  23. md="4"
  24. >
  25. <v-sheet
  26. dark
  27. class="pa-4"
  28. >
  29. <pre>{{ showColor }}</pre>
  30. </v-sheet>
  31. </v-col>
  32. </v-row>
  33. </v-container>
  34. </template>
  1. <script>
  2. export default {
  3. data: () => ({
  4. types: ['hex', 'hexa', 'rgba', 'hsla', 'hsva'],
  5. type: 'hex',
  6. hex: '#FF00FF',
  7. hexa: '#FF00FFFF',
  8. rgba: { r: 255, g: 0, b: 255, a: 1 },
  9. hsla: { h: 300, s: 1, l: 0.5, a: 1 },
  10. hsva: { h: 300, s: 1, v: 1, a: 1 },
  11. }),
  12. computed: {
  13. color: {
  14. get () {
  15. return this[this.type]
  16. },
  17. set (v) {
  18. this[this.type] = v
  19. },
  20. },
  21. showColor () {
  22. if (typeof this.color === 'string') return this.color
  23. return JSON.stringify(Object.keys(this.color).reduce((color, key) => {
  24. color[key] = Number(this.color[key].toFixed(2))
  25. return color
  26. }, {}), null, 2)
  27. },
  28. },
  29. }
  30. </script>

Color pickers(取色器) - 图3

色板

使用 show-swatches 属性,您可以显示用户可以选择的一系列色样。 也可以使用 swatches 属性自定义显示什么颜色。 该属性接受二维数组,其中第一维定义一列,第二维通过提供 rgba hex 字符串从上到下定义色板。 您还可以使用 swatches-max-height 属性设置色板部分的最大高度。

template script


  1. <template>
  2. <v-row justify="space-around">
  3. <v-color-picker class="ma-2" show-swatches></v-color-picker>
  4. <v-color-picker class="ma-2" :swatches="swatches" show-swatches></v-color-picker>
  5. <v-color-picker class="ma-2" show-swatches swatches-max-height="300px"></v-color-picker>
  6. </v-row>
  7. </template>
  1. <script>
  2. export default {
  3. data: () => ({
  4. swatches: [
  5. ['#FF0000', '#AA0000', '#550000'],
  6. ['#FFFF00', '#AAAA00', '#555500'],
  7. ['#00FF00', '#00AA00', '#005500'],
  8. ['#00FFFF', '#00AAAA', '#005555'],
  9. ['#0000FF', '#0000AA', '#000055'],
  10. ],
  11. }),
  12. }
  13. </script>

Color pickers(取色器) - 图4

Vuetify Epic Backpack

The Vuetify Epic Backpack is a premium backpack that has a spot for everything you travel with.

ads by Vuetify

](https://store.vuetifyjs.com/product/vuetify-epic-backpack?ref=vuetifyjs.com)

输入

数字输入可以用 hide-inputs 属性隐藏。你也可以用 hide-mode-switch 属性隐藏模式切换图标。模式也可以通过 mode 属性进行外部控制。

template script


  1. <template>
  2. <v-row justify="space-around">
  3. <v-color-picker class="ma-2" hide-inputs></v-color-picker>
  4. <v-color-picker class="ma-2" hide-mode-switch></v-color-picker>
  5. <v-row class="ma-2" style="flex: 0 0 auto">
  6. <v-color-picker :mode.sync="mode"></v-color-picker>
  7. <v-select v-model="mode" :items="modes" style="max-width: 300px"></v-select>
  8. </v-row>
  9. </v-row>
  10. </template>
  1. <script>
  2. export default {
  3. data: () => ({
  4. mode: 'hsla',
  5. modes: ['hsla', 'rgba', 'hexa'],
  6. }),
  7. }
  8. </script>

Color pickers(取色器) - 图5

画布

可以使用 hide-canvas 属性隐藏画布,并且可以使用 canvas-height 属性设置画布的高度。 选择点的大小可以通过 dot-size 属性来控制。

template


  1. <template>
  2. <v-row justify="space-around">
  3. <v-color-picker class="ma-2" hide-canvas></v-color-picker>
  4. <v-color-picker class="ma-2" canvas-height="300"></v-color-picker>
  5. <v-color-picker class="ma-2" dot-size="30"></v-color-picker>
  6. </v-row>
  7. </template>

Color pickers(取色器) - 图6