使用VUE3实现简单颜色盘,吸管组件,useEyeDropper和<input type=“color“ />的使用

1.使用vueuse中的useEyeDropper来实现滴管的功能和使用input中的type="color"属性来实现颜色盘

 效果:

图标触发吸管

input触发颜色盘
 

组件代码部分 :<dropper>  ----  vueuse使用

<template>
    <div class="sRGBHexWrap fbc">
        <span class="iconStyle fec" @click="handleOpen">
            <el-icon :size="20">
                <EditPen />
            </el-icon>
        </span>

        <span class="colorSpan">
            <input type="color" :value="defaultValue" @input="updateColor" class="color" v-if="showInput" />
        </span>

    </div>
</template>

<script setup>

import { useEyeDropper } from '@vueuse/core'
const { open, sRGBHex } = useEyeDropper()
// 引入 Vue 相关的 API
import { ref, watch, onMounted } from "vue";

// 定义组件的 props 和 emits
const props = defineProps(['modelValue'])
const emit = defineEmits(["update:modelValue"]);
//默认颜色显示
let defaultValue = '#4EAF31' //默认展示的颜色,使用ref无法触发初始化显示
let showInput = ref(true)   //因为defaultValue不是ref所以需要手动刷新dom
let Value = ref(null) //派发的颜色

//获取颜色盘的颜色
const getColor = (newValue) => {
    showInput.value = false
    defaultValue = newValue
    Value.value = newValue;
    showInput.value = true
};

//监听接受的值然后进行复制
watch(() => props.modelValue, async (newValue) => {
    if (newValue) {
        getColor(newValue)
    }
}, { immediate: true })

//监听滴管颜色
watch(sRGBHex, async (newmodelValue) => {
    if (newmodelValue) {
        getColor(newmodelValue)
    }
})

//监听值的变化
watch(Value, async (newValue) => {
    if (newValue) {
        emit("update:modelValue", newValue);
    }
})

//获取颜色盘的颜色
const updateColor = (event) => {
    Value.value = event.target.value;
};

//处理打开滴管时候按Esc按钮报错
const handleOpen = () => {
    try {
        open();
    } catch (error) {
        console.error('Error while opening EyeDropper:', error);
    }
};


</script>

<style lang="scss" scoped>
.color {
    background: var(--background-color2);
    outline: none;
    box-shadow: none;
    border: none;
}

.sRGBHexWrap {
    width: 100%;
    height: 100%;
    /* background-color: aliceblue; */

}

.iconStyle {
    width: 100%;
    height: 100%;
    padding: 0px 10px;
    cursor: pointer;
}

.colorSpan {
    cursor: pointer;
    width: 50%;
    height: 50%;
    border-radius: 5px;
}

input {
    padding: 0px;
    margin: 0px;
}
</style>

使用组件<dropper>

<dropper v-model="VRColor"></dropper>

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/185086.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Python微信机器人】第四篇:实战发送文本和图片消息(使用篇)

目录修整 目前的系列目录(后面会根据实际情况变动): 在windows11上编译python将python注入到其他进程并运行注入Python并使用ctypes主动调用进程内的函数和读取内存结构体调用汇编引擎实战发送文本和图片消息(同时支持32位和64位微信)允许Python加载运行py脚本且支持热加载&a…

Django QuerySet.order_by SQL注入漏洞(CVE-2021-35042)

漏洞描述 Django 于 2021年7月1日发布了一个安全更新&#xff0c;修复了函数QuerySet.order_by中的 SQL 注入漏洞。 参考链接&#xff1a; Django security releases issued: 3.2.5 and 3.1.13 | Weblog | Django 该漏洞需要开发人员使用order_by功能。此外&#xff0c;还可…

RabbitMQ 安装(在docker容器中安装)

为什么要用&#xff1f; RabbitMQ是一个开源的消息代理和队列服务器&#xff0c;主要用于在不同的应用程序之间传递消息。它实现了高级消息队列协议&#xff08;AMQP&#xff09;&#xff0c;并提供了一种异步协作机制&#xff0c;以帮助提高系统的性能和扩展性。 RabbitMQ的作…

10月,1Panel开源面板项目收到了这些评论

2023年10月20日&#xff0c;1Panel开源面板&#xff08;https://github.com/1Panel-dev&#xff09;项目发布了题为《9月&#xff0c;1Panel开源面板收到了这些评论》的社区评论合集。在该文章的评论区&#xff0c;很多社区用户跟帖发表了自己对1Panel开源项目的使用感受和意见…

C/C++ 实现Socket交互式服务端

在 Windows 操作系统中&#xff0c;原生提供了强大的网络编程支持&#xff0c;允许开发者使用 Socket API 进行网络通信&#xff0c;通过 Socket API&#xff0c;开发者可以创建、连接、发送和接收数据&#xff0c;实现网络通信。本文将深入探讨如何通过调用原生网络 API 实现同…

Excel动态选择某一行/列的最后一个数据

选择列的最后一个数据&#xff1a; 以A列为例&#xff0c;使用&#xff1a; LOOKUP(1,0/(A:A<>""),A:A)选择行的最后一个数据&#xff1a; 以第3行为例&#xff0c;使用&#xff1a; LOOKUP(1,0/(3:3<>""),3:3)示例程序 列最后一个数据&a…

中电金信:守【政】创新,探路保险数字化转型“新范式”

11月23日&#xff0c;CIIP2023中国保险科技创新合作大会在京举办。大会汇集保险科技领域行业专家、学者、国内外头部险企及保险科技公司负责人等各界人士&#xff0c;立足保险行业高质量发展和创新驱动理念&#xff0c;寻找行业数字化转型新动能、新视角&#xff0c;为保险科技…

MySql使用游标批量更新字段为空的记录

目的&#xff1a;因为工作中需要模拟大批量的测试数据、发现有部分历史数据中的唯一编号的字段内容为空&#xff0c;因此需要按顺序填充上对应的字段内容&#xff0c;经查询mysql使用游标方式能快速实现此需求。 具体操作步骤如下&#xff1a;打开Navicate for MySQL软件、连接…

python中range函数的用法

range() 是Python的一个内置函数。语法格式为&#xff1a;range(start, stop, step) start是初始值&#xff0c;stop是最终值&#xff0c;step是步长。range()函数仅适用于整数&#xff0c;所有参数都必须是整数。步长值可以为正数或负数&#xff0c;不得为零。使用range函数时…

解决 Invalid bound statement (not found): XXXX 异常

解决Invalid bound statement not found 异常 异常环境解决 异常环境 1、异常提示找不到 listQuery2方法 Caused by: org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.huaw.mapper.excel.ExcelWorkBookMapper.listQuery2 2、MyBatis…

乐得瑞LDR6020 VR串流线方案:实现同时充电传输视频信号

VR&#xff08;Virtual Reality&#xff09;&#xff0c;俗称虚拟现实技术&#xff0c;是一项具有巨大潜力的技术创新&#xff0c;正在以惊人的速度改变我们的生活方式和体验&#xff0c;利用专门设计的设备&#xff0c;如头戴式显示器&#xff08;VR头盔&#xff09;、手柄、定…

MySQL的体系结构与SQL的执行流程

文章目录 前言体系结构SQL语句的执行流程1、连接MySQL2、查询缓存3、解析SQL语句4、优化SQL语句5、执行SQL语句 总结 前言 如果你在使用MySQL时只会写sql语句的&#xff0c;那么你应该看一下《MySQL优化的底层逻辑》。如果你只了解到sql是如何优化的&#xff0c;那么你应该通过…

哦?是吗|兜兜转转,最后还是选择了盖雅排班系统

在之前发布的和「人效案例集」中&#xff0c;我们为大家呈现了很多关于人效提升的理论方法&#xff0c;以及各家企业的人效提升提升实践。 回过头来&#xff0c;我们发现&#xff1a;排班管理渗透于人效九宫格之中&#xff0c;也因此成为很多企业人效提升的一个重要中介&#x…

17 redis集群方案

1、RedisCluster分布式集群解决方案 为了解决单机内存&#xff0c;并发等瓶颈&#xff0c;可使用此方案解决问题. Redis-cluster是一种服务器Sharding技术&#xff0c;Redis3.0以后版本正式提供支持。 这里的集群是指多主多从&#xff0c;不是一主多从。 2、redis集群的目标…

java操作富文本插入到word模板

最近项目有个需求&#xff0c;大致流程是前端保存富文本&#xff08;html的代码&#xff09;到数据库&#xff0c;后台需要将富文本代码转成带格式的文字&#xff0c;插入到word模板里&#xff0c;然后将word转成pdf&#xff0c;再由前端调用接口下载pdf文件&#xff01; 1、思…

Joint Cross-Modal and Unimodal Features for RGB-D Salient Object Detection

提出的模型 the outputs H i m _i^m im​ from the unimodal RGB or depth branch in MFFM FFM means ‘Feature Fusion Module’ 作者未提供代码

基于Haclon的频域滤波原理

傅里叶变换&#xff1a; 法国数学家傅立叶提出&#xff0c;在满足某些数学条件下&#xff0c;任何周期函数都可以表示为不同频率的正弦和或/余弦和的形式&#xff0c;每个正弦和/或余弦乘以不同的系数&#xff0c;甚至非周期的有限函数也可以用正弦和/或余弦乘以加权函数的积分…

【Clang Static Analyzer 代码静态检测工具详细使用教程】

Clang Static Analyzer sudo apt-get install clang-tools scan-build cmake .. scan-build make -j4 编译完成之后会在终端提示在哪里查看报错文档: scan-build: 55 bugs found. scan-build: Run scan-view /tmp/scan-build-2023-11-24-150637-6472-1 to examine bug report…

SOLIDWORKS 2024新功能之Electrical篇

SOLIDWORKS 2024 Electrical篇目录概览 • 对齐零部件 • 更改多个导轨和线槽的长度 • 过滤辅助和附件零件 • 2D 机柜中的自动零件序号 • 移除制造商零件数据 • 重置未定义的宏变量 • 使用范围缩短列表 • SOLIDWORKS Electrical Schematic 增强功能 1、对齐零部件…

FANUC机器人到达某个点位时,为什么不显示@符号?

FANUC机器人到达某个点位时,为什么不显示@符号? 该功能由变量$MNDSP_POSCF = 0(不显示)/1(显示)/2(光标移动该行显示) 控制,该变量设置为不同的值,则启用对应的功能。 如下图所示,为该变量设置不同的值时的对比, 其他常用的系统变量可参考以下内容: 在R寄存器指定速度…