更新记录
1.0.0(2026-04-13) 下载此版本
首次发布
平台兼容性
uni-app(4.52)
| Vue2 | Vue3 | Chrome | Safari | app-vue | app-nvue | Android | iOS | 鸿蒙 |
|---|---|---|---|---|---|---|---|---|
| √ | √ | √ | √ | √ | √ | √ | √ | √ |
| 微信小程序 | 支付宝小程序 | 抖音小程序 | 百度小程序 | 快手小程序 | 京东小程序 | 鸿蒙元服务 | QQ小程序 | 飞书小程序 | 小红书小程序 | 快应用-华为 | 快应用-联盟 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| √ | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ |
zero-color-picker
一个适用于 uni-app 的颜色选择器组件,支持 HEX、RGB、HSL 输入切换,支持透明度、预设色以及底部弹窗选择。
1. 插件说明
仅测试于 vue2、vue3、微信小程序,其他平台请自行测试。
组件包含两个部分:
zero-color-picker:内嵌式颜色选择器zero-color-picker-popup:基于uni-popup的底部弹窗颜色选择器
符合 easycom 组件模式,使用 uni_modules 导入后可直接使用。
2. 基础用法
<template>
<view class="container">
<view class="card">
<view class="title">基础用法</view>
<zero-color-picker
v-model="color"
:showAlpha="true"
:showPresets="true"
outputFormat="auto"
@change="handleChange"
></zero-color-picker>
</view>
<view class="result">当前颜色:{{ color }}</view>
</view>
</template>
<script>
export default {
data() {
return {
color: "#1677FF",
};
},
methods: {
handleChange(color) {
console.log("当前颜色:", color);
},
},
};
</script>
<style>
.container {
padding: 24rpx;
}
.card {
background: #ffffff;
border-radius: 24rpx;
overflow: hidden;
}
.title {
font-size: 30rpx;
font-weight: 600;
padding: 24rpx 24rpx 0;
}
.result {
margin-top: 20rpx;
font-size: 28rpx;
color: #475569;
}
</style>
3. 弹窗用法
<template>
<view class="container">
<view class="picker-row">
<text>选择主题色</text>
<view class="picker-right">
<text>{{ popupColor }}</text>
<view
class="color-preview"
:style="{ backgroundColor: popupColor }"
@click="openPicker"
></view>
</view>
</view>
<zero-color-picker-popup
ref="pickerRef"
v-model="popupColor"
title="选择颜色"
:showAlpha="true"
outputFormat="auto"
@confirm="handleConfirm"
@cancel="handleCancel"
></zero-color-picker-popup>
</view>
</template>
<script>
export default {
data() {
return {
popupColor: "#FF4D4F",
};
},
methods: {
openPicker() {
this.$refs.pickerRef.open();
},
handleConfirm(color) {
this.popupColor = color;
console.log("确认颜色:", color);
},
handleCancel(color) {
console.log("取消时颜色:", color);
},
},
};
</script>
<style>
.container {
padding: 24rpx;
}
.picker-row {
display: flex;
align-items: center;
justify-content: space-between;
}
.picker-right {
display: flex;
align-items: center;
}
.color-preview {
width: 56rpx;
height: 56rpx;
border-radius: 12rpx;
margin-left: 16rpx;
border: 2rpx solid rgba(0, 0, 0, 0.08);
}
</style>
4. zero-color-picker 参数说明
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| value | String | '' | Vue2 兼容值 |
| modelValue | String | '' | Vue3 双向绑定值 |
| defaultColor | String | #1677FF | 默认颜色,组件初始化时使用 |
| outputFormat | String | auto | 输出格式,可选值:auto、hex、rgb、rgba |
| panelHeight | String | 320rpx | 颜色面板高度 |
| disabled | Boolean | false | 是否禁用 |
| showAlpha | Boolean | true | 是否显示透明度滑块 |
| showInput | Boolean | true | 是否显示输入框与格式切换 |
| showPresets | Boolean | true | 是否显示预设颜色 |
| presets | Array | 内置 9 个颜色 | 预设颜色列表,支持 #hex、rgba()、hsl() 等格式 |
5. zero-color-picker 事件说明
| 事件名 | 说明 | 回调参数 |
|---|---|---|
| input | Vue2 双向绑定事件 | color: String |
| update:modelValue | Vue3 双向绑定事件 | color: String |
| change | 拖动结束、输入确认或点击预设色后触发 | color: String |
6. zero-color-picker-popup 参数说明
zero-color-picker-popup 继承了 zero-color-picker 的全部参数,另外新增以下参数:
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| title | String | 选择颜色 | 弹窗标题 |
| cancelText | String | 取消 | 左侧取消文案 |
| confirmText | String | 确定 | 右侧确认文案 |
| maskClickToClose | Boolean | true | 点击遮罩层时是否关闭弹窗 |
7. zero-color-picker-popup 事件说明
| 事件名 | 说明 | 回调参数 |
|---|---|---|
| input | Vue2 双向绑定事件,点击确认时触发 | color: String |
| update:modelValue | Vue3 双向绑定事件,点击确认时触发 | color: String |
| change | 点击确认时触发 | color: String |
| confirm | 点击确认按钮时触发 | color: String |
| cancel | 点击取消按钮时触发 | color: String |
| open | 弹窗打开时触发 | color: String |
| close | 弹窗关闭时触发 | color: String |
| maskClick | 点击遮罩层时触发 | color: String |
8. zero-color-picker-popup refs 扩展
// 打开弹窗
this.$refs.pickerRef.open();
// 关闭弹窗
this.$refs.pickerRef.close();
// 获取当前颜色
this.$refs.pickerRef.getColor();
// 手动设置颜色
this.$refs.pickerRef.setColor("#00B578");
9. 输出规则说明
outputFormat="auto": 组件会在无透明度时输出#RRGGBB,有透明度且小于1时输出rgba(...)outputFormat="hex": 无透明度时输出#RRGGBB,开启透明度时输出#RRGGBBAAoutputFormat="rgb":始终输出rgb(r, g, b)outputFormat="rgba":始终输出rgba(r, g, b, a)
10. 输入格式说明
输入框支持以下格式:
#1677FF#1677FFCCrgb(22, 119, 255)rgba(22, 119, 255, 0.8)hsl(215, 100%, 54%)hsla(215, 100%, 54%, 0.8)
切换到不同模式后,输入框会自动显示当前颜色对应的 HEX、RGB 或 HSL 文本。
插件预览:
![]()
小程序搜索:零技术
预览小程序不一定及时更新当前插件

收藏人数:
下载插件并导入HBuilderX
赞赏(0)
下载 10448
赞赏 94
下载 11524577
赞赏 1904
赞赏
京公网安备:11010802035340号