Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
Tags
- 프론트엔드
- 코딩일기
- react
- HTML 파일구조
- tailwindcss
- 코코아톡 클론코딩
- jest
- canvas image
- HTML
- 웹 브라우저 구조
- axios-mock-adapte
- tanstack-query
- canvas js
- typescript
- JS
- queryprovider
- CSS
- negative margin
- 바닐라 JS로 그림판 만들기
- javascript
- JAVA Script
- 바닐라 JS로 크롬 앱 만들기
- 코딩독학
- 노마드 코더
- 웹 브라우저 렌더링
- clone coding
- 생활코딩
- next.js
- canvas
- 노마드코더
Archives
- Today
- Total
Coding Archive
canvas js로 구현하기 (4) - canvas color palette [캔버스 브러시 색 바꾸기] 본문
💻 Programming/Java Script
canvas js로 구현하기 (4) - canvas color palette [캔버스 브러시 색 바꾸기]
코등어 2022. 10. 4. 13:50canvas color palette
간단하게 브러시 색상을 바꾸는 함수를 만들어 보았습니다.
[ html ]
1
2
3
4
5
6
7
8
9
10
11
12
|
<div class="colors">
<div class="color" style="background-color: #fc5c65"></div>
<div class="color" style="background-color: #fd9644"></div>
<div class="color" style="background-color: #fed330"></div>
<div class="color" style="background-color: #26de81"></div>
<div class="color" style="background-color: #2bcbba"></div>
<div class="color" style="background-color: #45aaf2"></div>
<div class="color" style="background-color: #4b7bec"></div>
<div class="color" style="background-color: #a55eea"></div>
<div class="color" style="background-color: #d1d8e0"></div>
<div class="color" style="background-color: #4b6584"></div>
</div>
|
cs |
div를 사용해 원하는 color들을 만들어 줍니다.
[ js ]
1.
1
|
const colors = document.querySelectorAll(".color");
|
cs |
querySelector는 수많은 color div 중 오직 맨 처음 하나의 div만 선택합니다.
이럴 때 사용 가능한 건 querySelectorAll입니다.
All이 붙으면 하나가 아닌 모든 color div를 선택할 수 있어 getElementsByClassName과 같은 효과를 볼 수 있습니다.
2.
1
2
3
4
5
6
|
const colors = document.querySelectorAll(".color");
Array.from(colors).forEach((color) =>
color.addEventListener("click", onColorClick)
);
|
cs |
각각의 컬러들을 Array.from을 사용해 하나로 묶어 배열로 만들어주고,
forEach()로 각각의 컬러들에 화살표 함수를 사용하여 addEventListener를 줍니다.
각각의 컬러들을 클릭할 때마다 onColorClick함수가 실행될 것입니다.
3.
1
2
3
4
5
6
7
8
9
10
|
const colors = document.querySelectorAll(".color");
function onColorClick(event) {
ctx.fillStyle = event.target.style.backgroundColor;
ctx.strokeStyle = event.target.style.backgroundColor;
}
Array.from(colors).forEach((color) =>
color.addEventListener("click", onColorClick)
);
|
cs |
event.target을 이용하면 이벤트가 발생한 요소의 속성 값들을 얻을 수 있는데,
여기서는 색상을 변경하고 싶기 때문에 style.backgroundColor의 속성 값을 fillStyle과 strokeStyle에 대입해줍니다.
--->
빨간 색상을 눌렀을 경우, 클릭 이벤트가 발생하고, 그 이벤트의 스타일에서 backgroundColor를 fillStyle과 strokeStyle로 지정을 했기 때문에 빨간색으로 변환되어 그려지게 됩니다.
'💻 Programming > Java Script' 카테고리의 다른 글
canvas js로 구현하기 (6) - canvas drawing image[캔버스에 이미지 출력하기 - 사진첨부] (1) | 2022.10.07 |
---|---|
canvas js로 구현하기 (5) - canvas drawing text [캔버스에 텍스트 출력하기] (0) | 2022.10.05 |
canvas js로 구현하기 (3) - canvas drawing mode변경하기(fill/draw) (0) | 2022.10.01 |
canvas js로 구현하기 (2) - 그리기 함수 만들기 (0) | 2022.09.29 |
canvas js로 구현하기 (1) - 선 그리기 (0) | 2022.09.29 |
Comments