【JS】实现系统取色器

news2024/11/26 16:29:19

效果

在这里插入图片描述

使用环境说明

根据当前的信息,截至到 2023 年 8 月,以下是一些支持使用 new EyeDropper() 的主要浏览器(可能还有其他浏览器也提供了类似的功能):

  1. Google Chrome:从 Chrome 94 版本开始引入了 new EyeDropper() 构造函数,可以通过 JavaScript API 来创建和使用 EyeDropper` 工具。

  2. Microsoft Edge:从 Edge 94 版本开始,支持 new EyeDropper() 构造函数,你可以在 Edge 中使用 JavaScript 来创建和操作 EyeDropper

  3. Mozilla Firefox:在 Firefox 浏览器中,可以使用 colorpickereyedropper 事件来实现类似的功能,不过具体的 API 是以事件形式而不是构造函数的形式提供的。

请注意,不同浏览器可能对 new EyeDropper() 的支持程度有所不同,具体支持的版本也可能会随着时间的推移而更新。因此,在实际开发中,建议查阅各个浏览器的官方文档或平台支持信息以获取最新的支持状态和详细的使用说明。

以下浏览器版本经过测试支持使用EyeDropper

  • Microsoft EdgeMicrosoft Edge 版本 115.0.1901.188 (正式版本) (64 位)

以下浏览器版本经过测试不支持使用EyeDropper

  • 360安全浏览器360安全浏览器13 版本号: 13.1.1469.0|内核版本:86.0.4240.198
  • Chrome浏览器: 版本 86.0.4240.198(正式版本) (32 位)
    Uncaught (in promise) ReferenceError: EyeDropper is not defined
    at HTMLButtonElement.btn.onclick (
    index.js:6)          index.js:6

index.html

<!DOCTYPE html>
<html>
  <head>
    <title>Document</title>
    <link type="text/css" rel="styleSheet" href="index.css" />
  </head>
  <body>
    <div class="container">
      <img src="index.png"/>
      <label></label>
      <button>开始取色</button>
      <div class="box"></div>
    </div>
    <script src="index.js"></script>
  </body>
</html>

使用方法

  • 使用:点击开始取色按钮
  • 取消:按下键盘的Esc

index.js

const btn = document.querySelector('button');
const box = document.querySelector('.box');
const label = document.querySelector ('label');

btn.onclick= async () => {
  const dropper = new EyeDropper();
  try {
    const result = await dropper.open();
    console.log(result);
    box.style.backgroundColor = label.textContent = result.sRGBHex;
  } catch (e) {
    console.log('user cancelled') ;
  }
};

index.css

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}
body{
  width: 100vw;
  height: 100vh;
  margin: 0;
  /* backgroud: #191c29 */
  background: #fff;
}

.container{
  display: block;
  position: relative;
}

img{
  margin: 10px;
  justify-content: center;
  align-items: center;
  object-fit:cover;
}
.box,
label,
button{
  position: absolute;
  left: 1250px;
  justify-content: center;
  align-items: right;
  margin: 6px;
  width: 130px;
  border: 1px #0b0c1c solid;
  color: #4f538e;
  font-size: 30px;
}

label {
  display: flex;
  top: 10px;
  background-color: #efdbd9;
}

button {
  top: 80px;
  background-color: #4fa1db;
}

.box {
  top:  150px;
  width: 130px;
  height: 130px;
}


index.png

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux下共享windows 一键搞定

编写脚本 [rootlocalhost ~]# vim dd.sh#!/bin/bash yum -y install samba mkdir -p /home/shar sss dddecho " [share]comment Shared Folderpath /homebrowseable yeswritable yesguest ok yes " > /etc/samba/smb.confchmod x /home/* useradd qqqq s…

Qgis核密度分析

不建议使用Qgis进行核密度分析&#xff0c;建议使用arcgis&#xff0c;arcgis更简单。 arcgis核密度分析 Qgis核密度分析有两种&#xff1a; 法一:符号化&#xff0c;热图。 缺点&#xff1a;使用不方便&#xff0c;只适合看一下效果。 法二&#xff1a;工具栏搜索&#xff…

linux和C++中的 线程同步与线程安全 对比

线程同步与线程安全 线程进程与线程的区别并发和并行的区别linux线程常用接口函数函数定义函数使用 多线程理解 线程同步五个线程同时启动&#xff0c;每一个循环打印3次五个线程&#xff0c;每一个循环1000 结果是<5000代码和测试结果测试结果分析可以用信号量和互斥锁解决…

C语言标准定义的32个关键字

欢迎关注博主 Mindtechnist 或加入【智能科技社区】一起学习和分享Linux、C、C、Python、Matlab&#xff0c;机器人运动控制、多机器人协作&#xff0c;智能优化算法&#xff0c;滤波估计、多传感器信息融合&#xff0c;机器学习&#xff0c;人工智能等相关领域的知识和技术。 …

PyTorch搭建神经网络

PyTorch版本&#xff1a;1.12.1PyTorch官方文档PyTorch中文文档 PyTorch中搭建并训练一个神经网络分为以下几步&#xff1a; 定义神经网络定义损失函数以及优化器训练&#xff1a;反向传播、梯度下降 下面以LeNet-5为例&#xff0c;搭建一个卷积神经网络用于手写数字识别。 …

日志分析和流量分析

目录 [陇剑杯 2021]日志分析&#xff08;问1&#xff09; [陇剑杯 2021]日志分析&#xff08;问2&#xff09; [陇剑杯 2021]日志分析&#xff08;问3&#xff09; [陇剑杯 2021]简单日志分析&#xff08;问1&#xff09; [陇剑杯 2021]简单日志分析&#xff08;问3&#…

智慧水利整体解决方案[43页PPT]

导读&#xff1a;原文《智慧水利整体解决方案[43页PPT]》&#xff08;获取来源见文尾&#xff09;&#xff0c;本文精选其中精华及架构部分&#xff0c;逻辑清晰、内容完整&#xff0c;为快速形成售前方案提供参考。 完整版领取方式 完整版领取方式&#xff1a; 如需获取完整的…

docker小白第一天

docker小白第一天 docker是什么docker理念容器与虚拟机比较docker能干什么docker官网介绍docker的基本组成docker平台架构 docker是什么 系统平滑移植&#xff0c;容器虚拟化技术。即源代码配置环境版本&#xff0c;打个包形成一个镜像文件&#xff0c;即软件带环境一起安装&a…

企业接口测试流程总结,你都走了哪些弯路?背锅不存在的...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 首先我们要明确&a…

LeetCode 周赛上分之旅 # 37 多源 BFS 与连通性问题

⭐️ 本文已收录到 AndroidFamily&#xff0c;技术和职场问题&#xff0c;请关注公众号 [彭旭锐] 和 BaguTree Pro 知识星球提问。 学习数据结构与算法的关键在于掌握问题背后的算法思维框架&#xff0c;你的思考越抽象&#xff0c;它能覆盖的问题域就越广&#xff0c;理解难度…

ArcGIS制作带蒙版的遥感影像地图

这次文章我们来介绍一下&#xff0c;如何通过一个系统的步骤完成ArcGIS制作带蒙版的遥感影像地图。 主要的步骤包括&#xff1a; 1 添加行政区划数据 2 导出兴趣去乡镇矢量范围 3 添加遥感影像底图 4 制作蒙版 5 利用自动完成面制作蒙版 6 标注乡镇带晕渲文字 7 …

Golang 包详解以及go mod

Golang 中包的介绍和定义 包(package)是多个 Go 源码的集合,是一种高级的代码复用方案,Go 语言为我们提供了 很多内置包,如 fmt、strconv、strings、sort、errors、time、encoding/json、os、io 等。 Golang 中的包可以分为三种:1、系统内置包 2、自定义包 3、第三方包…

云服务器SVN仓库搭建(以阿里云为例)

远程连接阿里云服务器 安装svn(注意需要root权限使用命令sudo su) yum install subversion 安装成功后查看svn版本 svnserve --version 创建版本库的根目录 mkdir /var/svn 创建代码仓库 svnadmin create /var/svn/test 当前生成的目录结构 此处为svn的配置文件 创建用户名…

C# App.config和Web.config加密

步骤1&#xff1a;创建加密命令 使用ASP.NET提供的命令工具aspnet_regiis来创建加密命令。 1、打开控制台窗口&#xff0c;在命令行中输入以下命令&#xff1a; cd C:\Windows\Microsoft.NET\Framework\v4.xxxxx aspnet_regiis.exe -pef connectionStrings "C:\MyAppFo…

【PyQt5程序的打包和发布】

【PyQt5程序的打包和发布】 1 安装Pyinstaller模块2 打包普通Python程序3 打包PyQt5程序4 打包资源文件 1 安装Pyinstaller模块 pip install Pyinstaller2 打包普通Python程序 普通Python程序由Python内部库提供&#xff0c;不包含第三方库模板。 使用如下命令打包&#xff1…

【Docker】数据库动态授权组件在Kubernetes集群下的测试过程记录

目录 背景 组件原理 测试设计 环境 测试脚本 脚本build为linux可执行文件 镜像构建 Dockerfile Docker build 镜像有效性验证 总结 资料获取方法 背景 我们都知道出于安全性考虑&#xff0c;生产环境的权限一般都是要做最小化控制&#xff0c;尤其是数据库的操作授…

【现网】记一次并发冲突导致流量放大的生产问题

目录 事故现象 转账 业务背景介绍 背景一&#xff1a;转账流程 转账流程 转账异常处理 转账异常处理流程图 背景二&#xff1a;账户系统合并 实际全流程&#xff1a; 背景三&#xff1a;扣内存数据库逻辑 背景四&#xff1a;调用方重试逻辑 问题定位 总结 资料获取…

org.apache.hadoop.hive.ql.exec.DDLTask. show Locks LockManager not specified解决

Error while processing statement: FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. show Locks LockManager not specified解决 当在Hive中执行show locks语句时&#xff0c;出现"LockManager not specified"错误通常是由于…

认识“协议“序列化和反序列化

目录 前言 1 应用层 2 在谈协议 3 序列化和反序列化 4 网络版计算器 4.1 指定协议 request结构体 response结构体 4.2 服务端编写 4.3 客户端的编写 5 Json for C 的序列化和反序列化使用样例 前言 之前的socket编程&#xff0c;都是在通过系统调用层面&#xff0c;…

acwing第 115 场周赛第二题题解:维护最大值和次大值

一、链接 5132. 奶牛照相 二、题目 约翰的农场有 nn 头奶牛&#xff0c;编号 1∼n1∼n。 其中&#xff0c;第 ii 头奶牛的宽度为 wiwi&#xff0c;高度为 hihi&#xff0c; 有一天&#xff0c;它们聚餐后决定拍照留念。 关于拍照的描述如下&#xff1a; 它们一共拍了 nn…