Vue3實現一個拾色器功能

?
<template><div class="color"><button v-if="hasEyeDrop" @click="nativePick">點擊取色</button><input v-else type="color" @input="nativePick" v-model="selectedColor" /><p>所選顏色: {{ selectedColor }}</p><p>RGB顏色: {{ rgbColor }}</p></div>
</template>
<script setup lang="ts">
import { ref, computed } from 'vue';const hasEyeDrop: boolean = 'EyeDropper' in window;
const selectedColor = ref<string>('#ffffff'); // 使用ref來創建響應式數據
let result: Record<string, any> = {}; // 用于存儲選擇的顏色信息const rgbColor = computed(() => {const hex = selectedColor.value.replace('#', '');const r = parseInt(hex.substring(0, 2), 16);const g = parseInt(hex.substring(2, 4), 16);const b = parseInt(hex.substring(4, 6), 16);return `rgb(${r}, ${g}, ${b})`;
});async function nativePick(e: Event): Promise<void> {const val = e ? (e.target as HTMLInputElement).value : null;if (val) {selectedColor.value = val; // 更新選中的顏色console.log('獲得顏色: ' + val);} else {const eyeDropper = new (window as any).EyeDropper(); // 初始化一個EyeDropper對象console.log('按Esc可退出');try {const colorResult = await eyeDropper.open(); // 開始拾取顏色selectedColor.value = colorResult.sRGBHex; // 更新選中的顏色result = colorResult; // 存儲顏色信息console.log('獲得顏色: ' + colorResult.sRGBHex);// 使用result變量console.log(result);} catch (e) {console.log('用戶取消了取色');}}
}
</script><!-- // import { ref } from 'vue';
// const hasEyeDrop: boolean = 'EyeDropper' in window;
// const selectedColor = ref<string>('#ffffff'); // 使用ref來創建響應式數據
// let result: Record<string, any> = {}; // 用于存儲選擇的顏色信息// async function nativePick(e: Event): Promise<void> {
//   const val = e ? (e.target as HTMLInputElement).value : null;
//   if (val) {
//     selectedColor.value = val; // 更新選中的顏色
//     console.log('獲得顏色: ' + val);
//   } else {
//     const eyeDropper = new (window as any).EyeDropper(); // 初始化一個EyeDropper對象
//     console.log('按Esc可退出');
//     try {
//       const colorResult = await eyeDropper.open(); // 開始拾取顏色
//       selectedColor.value = colorResult.sRGBHex; // 更新選中的顏色
//       result = colorResult; // 存儲顏色信息
//       console.log('獲得顏色: ' + colorResult.sRGBHex);//       // 使用result變量
//       console.log(result);
//     } catch (e) {
//       console.log('用戶取消了取色');
//     }
//   }
// }
<style>
.color {width: 100%;height: 100%;background: linear-gradient(to right, red, orange, yellow, green, blue, indigo, violet);
}
</style> -->

效果圖
?在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/207334.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/207334.shtml
英文地址,請注明出處:http://en.pswp.cn/news/207334.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Markdown從入門到精通

Markdown從入門到精通 文章目錄 Markdown從入門到精通前言一、Markdown是什么二、Markdown優點三、Markdown的基本語法3.1 標題3.2 字體3.3 換行3.4 引用3.5 鏈接3.6 圖片3.7 列表3.8 分割線3.9 刪除線3.10 下劃線3.11 代碼塊3.12 表格3.13 腳注3.14 特殊符號 四、Markdown的高…

php爬蟲規則與robots.txt講解

在進行網頁爬蟲時&#xff0c;有一些規則需要遵守&#xff0c;以避免違反法律&#xff0c;侵犯網站隱私和版權&#xff0c;以及造成不必要的麻煩。以下是一些常見的PHP爬蟲規則&#xff1a; 1. 尊重網站的使用條款&#xff1a;在開始爬取之前&#xff0c;請確保你閱讀并理解了…

2024黑龍江省職業院校技能大賽信息安全管理與評估樣題第二三階段

2024黑龍江省職業院校技能大賽暨國賽選拔賽 "信息安全管理與評估"樣題 *第二階段競賽項目試題* 本文件為信息安全管理與評估項目競賽-第二階段試題&#xff0c;第二階段內容包括&#xff1a;網絡安全事件響應、數字取證調查和應用程序安全。 極安云科專注技能競賽…

mysql 快捷登陸

要將 MySQL 的登錄命令添加到環境變量中并為其創建別名&#xff0c;可以按照以下步驟進行操作&#xff1a; 1. 打開終端并編輯 /etc/profile 文件&#xff08;使用所有用戶的全局設置&#xff09; vim /etc/profile 2. 在文件的末尾添加以下行來設置環境變量和別名 # 將 &q…

openharmony 開發環境搭建和系統應用編譯傻瓜教程

一、DevEco Studio 安裝 當前下載版本有兩個&#xff0c;由于低版本配置會有各種問題&#xff0c;我選擇高版本安裝 低版本下載鏈接 HUAWEI DevEco Studio和SDK下載和升級 | HarmonyOS開發者 高版本下載鏈接 OpenAtom OpenHarmony 解壓后安裝 雙擊安裝 安裝配置 二、創建測…

GO設計模式——12、外觀模式(結構型)

目錄 外觀模式&#xff08;Facade Pattern&#xff09; 外觀模式的核心角色&#xff1a; 優缺點 使用場景 代碼實現 外觀模式&#xff08;Facade Pattern&#xff09; 外觀模式&#xff08;Facade Pattern&#xff09;又叫作門面模式&#xff0c;是一種通過為多個復雜的子…

IntelliJ IDEA的下載安裝配置步驟詳解

引言 IntelliJ IDEA 是一款功能強大的集成開發環境&#xff0c;它具有許多優勢&#xff0c;適用于各種開發過程。本文將介紹 IDEA 的主要優勢&#xff0c;并提供詳細的安裝配置步驟。 介紹 IntelliJ IDEA&#xff08;以下簡稱 IDEA&#xff09;之所以被廣泛使用&#xff0c;…

docker鏡像倉庫hub.docker.com無法訪問

docker鏡像倉庫hub.docker.com無法訪問 文章主要內容&#xff1a; 介紹dockerhub為什么無法訪問解決辦法 1 介紹dockerhub為什么無法訪問 最近許多群友都詢問為什么無法訪問Docker鏡像倉庫&#xff0c;于是我也嘗試去訪問&#xff0c;結果果然無法訪問。 大家的第一反應就是…

HDFS常見題

1. 談談什么是Hadoop? Hadoop是一個開源軟件框架&#xff0c;用于存儲大量數據&#xff0c;并發計算/查詢節點的集群上的數據。   Hadoop包括以下內容&#xff1a;     HDFS(Hadoop Distributed File System)&#xff1a;Hadoop分布式文件存儲系統。     MapReduce&…

【華為OD題庫-084】最長連續子序列-Java

題目 有N個正整數組成的一個序列。給定整數sum&#xff0c;求長度最長的連續子序列&#xff0c;使他們的和等于sum&#xff0c;返回此子序列的長度。如果沒有滿足要求的序列&#xff0c;返回-1。 輸入描述 第一行輸入是:N個正整數組成的一個序列 第二行輸入是:給定整數sum 輸出…

nodejs fs模塊

是什么&#xff1a;nodejs提供的操作文件的模塊 fs.readFile() fs.writeFile() js中使用 fs模塊操作文件&#xff0c;先導入fs const fsrequire(fs)fs.readFile() 讀取指定文件的內容 語法格式 fs.readFile(path[, options], callback) path&#xff1a;必選參數&#x…

參數是Id,但要顯示接口中的id對應的名稱

當下拉數據是個接口&#xff0c;且后臺表單和列表中給的參數是Id,但要顯示接口中的id對應的名稱 先在data中定義要顯示的名稱 productName 1.form下拉 <el-form-item label"產品名稱" prop"productId"><el-select v-model"queryParams.produ…

初學vue3與ts:keep-alive的簡單使用

vue2用法 <keep-alive :include"keepAliveNames"><router-view></router-view> </keep-alive> <script>//include代表緩存name是FleetList的組件this.keepAliveNames FleetList </script>vue3用法 <router-view v-slot&qu…

數組循環:使用 for-of 循環

首先我們先創建一個數組&#xff0c;從之前的對象中取得 const menu [...restaurant.starterMenu,...restaurant.mainMenu];在之前&#xff0c;我們如果想要打印數組中的每一個數據&#xff0c;我們通常會寫for循環來一個一個打印出來&#xff0c;現在我們可以使用for-of循環…

Elasticsearch:什么是檢索增強生成 (RAG)?

檢索增強生成 (RAG) 定義 檢索增強生成 (RAG) 是一種利用來自私有或專有數據源的信息來補充文本生成的技術。 它將旨在搜索大型數據集或知識庫的檢索模型與大型語言模型 (LLM) 等生成模型相結合&#xff0c;后者獲取該信息并生成可讀的文本響應。 檢索增強生成可以通過添加來…

在線客服系統有哪些接入方式?

在線客服系統在當今的商業環境中還是非常重要的角色的。它通過提供實時又個性化的客戶服務&#xff0c;讓客戶滿意的同時還能提高轉化率&#xff0c;更能維護品牌形象。然而企業在選擇在線客服系統時必須了解不同的接入方式&#xff0c;以便選擇最適合自己的方式。下面我以合從…

消費升級:無人零售的崛起與優勢

消費升級&#xff1a;無人零售的崛起與優勢 隨著人們生活水平的提高&#xff0c;消費內容正在從生存型消費轉向以精神體驗和享樂為主的發展型消費。社會居民的消費結構不斷變遷&#xff0c;明顯呈現消費升級趨勢。個性化和多元化消費勢頭正在崛起&#xff0c;特別是無人零售的自…

【教學類-35-02】20231207大班姓名描字帖:A4單面3*10個姓名,雙面共60個名字

背景需求&#xff1a; 需求1——需要字帖 大4班班主任說&#xff1a;你能給我們班孩子做一套寫名字的字帖嗎&#xff1f;我想讓他們練習寫名字。 我說&#xff1a;沒問題。我找找已經有的樣式給你看看&#xff0c;再打印。 打開電腦&#xff0c;我把曾經做的一套“大字貼”…

測試:API接口測試

API接口測試 API接口測試是確保應用程序編程接口&#xff08;API&#xff09;在開發過程中正確實現并滿足預定功能要求的過程。API是不同軟件之間交流的橋梁&#xff0c;負責數據的傳輸、交換和控制。進行API測試的目的是驗證API的功能、性能、安全性和兼容性。 API接口測試的…

【Linux系統化學習】進程地址空間 | 虛擬地址和物理地址的關系

個人主頁點擊直達&#xff1a;小白不是程序媛 Linux專欄&#xff1a;Linux系統化學習 代碼倉庫&#xff1a;Gitee 目錄 虛擬地址和物理地址 頁表 進程地址空間 進程地址空間存在的意義 虛擬地址和物理地址 我們在學習C/C的時候肯定都見過下面這張有關于內存分布的圖片&a…