색상 선택기 확장 구축
소개
이 블로그 게시물에서는 간단하면서도 강력한 색상 선택 브라우저 확장 프로그램을 만드는 방법을 살펴보겠습니다. 이 확장 프로그램을 사용하면 사용자는 간단한 상호 작용을 통해 쉽게 화면에서 색상을 선택하고, 선택한 색상 내역을 확인하고, 색상 팔레트를 관리할 수 있습니다.
프로젝트 개요
색상 선택기 확장 프로그램은 다음 작업을 수행하기 위한 사용자 친화적인 인터페이스를 제공합니다.
- EyeDropper API를 사용하여 화면에서 색상을 선택하세요.
- 선택한 색상의 기록을 확인하세요.
- 색상 코드를 클립보드에 복사하세요.
- 선택한 색상을 모두 지웁니다.
특징
- 색상 선택: EyeDropper API를 사용하여 화면 어느 부분에서나 색상을 선택하세요.
- 색상 기록: 선택한 색상 목록을 쉽게 액세스할 수 있도록 유지관리합니다.
- 클립보드 복사: 색상 코드를 클립보드에 빠르게 복사하세요.
- 모두 지우기: 한 번의 클릭으로 기록에서 모든 색상을 제거합니다.
사용된 기술
- HTML: 확장 프로그램 팝업에 대한 마크업
- CSS: 팝업 및 해당 요소에 대한 스타일링
- JavaScript: 색상 선택, 색상 기록 표시, 클립보드 작업 관리를 처리합니다.
- EyeDropper API: 화면에서 색상을 선택할 수 있습니다.
- localStorage: 세션 전체에서 선택한 색상을 저장합니다.
프로젝트 구조
- HTML(index.html): 색상 선택기 인터페이스의 구조를 포함합니다.
- CSS(style.css): 팝업과 해당 요소의 스타일을 지정합니다.
- JavaScript(script.js): 색상 선택, 표시, 로컬 저장소와의 상호작용 등의 기능을 관리합니다.
- 매니페스트(manifest.json): 확장 프로그램의 메타데이터 및 구성을 정의합니다.
설치
로컬에서 확장 프로그램을 테스트하려면:
- 파일을 디렉토리에 저장하세요.
- Chrome을 열고 chrome://extensions/로 이동하세요.
- '개발자 모드'를 활성화합니다(오른쪽 상단에서 전환).
- "압축해제된 항목 로드"를 클릭하고 프로젝트 디렉토리를 선택하세요.
용법
- 색상 선택기를 활성화하려면 확장 팝업에서 '색상 선택' 버튼을 클릭하세요.
- 화면 어디에서나 색상을 선택하세요.
- 팝업에서 선택한 색상을 확인하고 색상을 클릭하여 해당 코드를 클립보드에 복사하세요.
- 기록에서 모든 색상을 제거하려면 "모두 지우기"를 클릭하세요.
코드 설명
HTML
<!DOCTYPE html> <html lang="en"> <head> <link rel="stylesheet" href="style.css"> <script src="script.js" defer></script> </head> <body> <div class="popup"> <div class="picker"> <button id="color-picker">Pick Color</button> </div> <div class="picked-colors hide"> <header> <p class="title">Picked colors</p> <span class="clear-all">Clear All</span> </header> <ul class="all-colors"></ul> </div> </div> </body> </html>
자바스크립트
const colorPickerBtn = document.querySelector("#color-picker"); const clearAll = document.querySelector(".clear-all"); const colorList = document.querySelector(".all-colors"); const pickedColors = JSON.parse(localStorage.getItem("picked-colors") || "[]"); const copyColor = (elem) => { elem.innerText = "Copied"; navigator.clipboard.writeText(elem.dataset.color); setTimeout(() => elem.innerText = elem.dataset.color, 1000); } const showColor = () => { if (!pickedColors.length) return; colorList.innerHTML = pickedColors.map(color => ` <li class="color"> <span class="rect" style="background: ${color}; border: 1px solid ${color == "#ffffff" ? "#ccc" : color}"></span> <span class="value hex" data-color="${color}">${color}</span> </li> `).join(""); document.querySelector(".picked-colors").classList.remove("hide"); document.querySelectorAll(".color").forEach(li => { li.addEventListener("click", e => copyColor(e.currentTarget.lastElementChild)); }); } showColor(); const activateEyeDropper = () => { document.body.style.display = "none"; setTimeout(async () => { try { const eyeDropper = new EyeDropper(); const { sRGBHex } = await eyeDropper.open(); navigator.clipboard.writeText(sRGBHex); if (!pickedColors.includes(sRGBHex)) { pickedColors.push(sRGBHex); localStorage.setItem("picked-colors", JSON.stringify(pickedColors)); showColor(); } } catch (error) { alert("Failed to copy the color code!"); } document.body.style.display = "block"; }, 10); } const clearAllColors = () => { pickedColors.length = 0; localStorage.setItem("picked-colors", JSON.stringify(pickedColors)); document.querySelector(".picked-colors").classList.add("hide"); } clearAll.addEventListener("click", clearAllColors); colorPickerBtn.addEventListener("click", activateEyeDropper);
CSS
@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600&display=swap'); * { margin: 0; padding: 0; box-sizing: border-box; font-family: "Poppins", sans-serif; } .popup { width: 350px; background: #fff; } .popup :where(.picker, header, .all-colors) { display: flex; align-items: center; } .popup .picker { padding: 30px 0; background: #E3F2FD; justify-content: center; } .picker #color-picker { border: none; outline: none; color: #fff; font-size: 1rem; cursor: pointer; padding: 10px 20px; border-radius: 5px; background: #5372F0; transition: 0.3s ease; } #color-picker:hover { background: #2c52ed; } .picked-colors { margin: 10px 15px; } .picked-colors header { justify-content: space-between; } header .title { font-size: 1rem; } header .clear-all { cursor: pointer; font-size: 0.9rem; color: #5372F0; } header .clear-all:hover { color: #143feb; } .picked-colors.hide { display: none; } .picked-colors .all-colors { flex-wrap: wrap; list-style: none; margin: 10px 0 15px; } .all-colors .color { display: flex; cursor: pointer; margin-bottom: 10px; width: calc(100% / 3); } .all-colors .rect { height: 21px; width: 21px; display: block; margin-right: 8px; border-radius: 5px; } .all-colors .color span { font-size: 0.96rem; font-weight: 500; text-transform: uppercase; font-family: "Open sans"; }
라이브 데모
위의 설치 지침에 따라 확장 프로그램을 로컬에서 테스트할 수 있습니다. 설치되면 확장 프로그램의 팝업을 통해 색상을 선택하고 색상 기록을 관리할 수 있습니다.
결론
이 색상 선택기 확장 프로그램은 EyeDropper API를 브라우저 확장 프로그램에 통합하여 사용자에게 색상 선택 및 관리를 위한 편리한 도구를 제공하는 방법을 보여줍니다. 디자이너이든 색상 작업을 즐기는 사람이든 이 확장 프로그램을 사용하면 작업 흐름이 향상될 수 있습니다.
크레딧
- EyeDropper API: 화면에서 색상을 선택하는 기능을 제공합니다.
- 팝핀스 폰트: 팝업 텍스트의 스타일을 지정하는 데 사용됩니다.
작가
Abhishek Gurjar는 실용적이고 기능적인 웹 애플리케이션 제작에 열정을 쏟는 헌신적인 웹 개발자입니다. GitHub에서 더 많은 프로젝트를 확인해 보세요.
위 내용은 색상 선택기 확장 구축의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

프로젝트에 카운트 다운 타이머가 필요한 적이 있습니까? 그런 것은 플러그인에 도달하는 것이 당연하지만 실제로는 훨씬 더 많습니다.

새로운 프로젝트가 시작될 때, Sass 컴파일은 눈을 깜박이게합니다. 특히 BrowserSync와 짝을 이루는 경우 기분이 좋습니다.

Lea Verou의 기능 목록을 주시 한 한 가지는 Conic-Gradient () Polyfill이 마지막 항목이었습니다.

Inline-Template 지시문을 사용하면 기존 WordPress 마크 업에 대한 진보적 인 향상으로 풍부한 VUE 구성 요소를 구축 할 수 있습니다.

PHP 템플릿은 종종 서브 파 코드를 용이하게하는 데 나쁜 랩을 얻지 만, 그렇지 않아야합니다. PHP 프로젝트가 기본을 시행 할 수있는 방법을 살펴 보겠습니다.

새 프로젝트를 시작할 때마다 원하는 경우 세 가지 유형 또는 카테고리로보고있는 코드를 구성합니다. 그리고 나는 이러한 유형을 적용 할 수 있다고 생각합니다
