更新记录

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 输出格式,可选值:autohexrgbrgba
panelHeight String 320rpx 颜色面板高度
disabled Boolean false 是否禁用
showAlpha Boolean true 是否显示透明度滑块
showInput Boolean true 是否显示输入框与格式切换
showPresets Boolean true 是否显示预设颜色
presets Array 内置 9 个颜色 预设颜色列表,支持 #hexrgba()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,开启透明度时输出 #RRGGBBAA
  • outputFormat="rgb":始终输出 rgb(r, g, b)
  • outputFormat="rgba":始终输出 rgba(r, g, b, a)

10. 输入格式说明

输入框支持以下格式:

  • #1677FF
  • #1677FFCC
  • rgb(22, 119, 255)
  • rgba(22, 119, 255, 0.8)
  • hsl(215, 100%, 54%)
  • hsla(215, 100%, 54%, 0.8)

切换到不同模式后,输入框会自动显示当前颜色对应的 HEX、RGB 或 HSL 文本。

插件预览:

code

小程序搜索:零技术

预览小程序不一定及时更新当前插件

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

插件不采集任何数据

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

许可协议

MIT协议

暂无用户评论。