개발자 혜진
꾸준하게 개발 블로그
개발자 혜진
05-29 07:04
전체 방문자
오늘
어제
  • 전체보기 (69)
    • 코딩테스트 (25)
    • HTML (1)
    • CSS (6)
    • React (3)
    • Vue (8)
    • Javascript (9)
    • Java (3)
    • IDE (1)
    • Toy Project (10)
    • 개발 서적 (2)
    • 개발 이야기 (0)
    • TMI (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록
  • 글쓰기

인기 글

태그

  • javascript 진수
  • 텍스트에그라데이션
  • 뷰티파이
  • input Foucs Out
  • 박스가운데정렬
  • styled-component focus out
  • 가로가운데정렬
  • TypeScript기본문법
  • 프로그래머스예산
  • 텍스트에이미지적용
  • 드로잉윗유
  • react
  • 프로그래머스
  • vue2
  • 이상한문자만들기 js
  • div가운데정렬
  • spring boot 한글 깨짐
  • vuetify
  • 시저암호js
  • js 진수변환
  • 8진수2진수
  • vue2캘린더 만들기
  • 프로그래머스0
  • Java초기화
  • 예산js
  • 클래스 토글
  • springboot mustache 한글 깨짐
  • 프로그래머스 3진법뒤집기
  • classList메소드
  • 시저암호javascript

최근 글

hELLO · Designed By 정상우.
개발자 혜진

꾸준하게 개발 블로그

랜덤 색상 만들기
Javascript

랜덤 색상 만들기

2022. 12. 14. 11:40

요즘 nodeJs를 배우면서 그림판을 업그레이드 하고싶은 욕구가 뿜뿜 하고있어서 리팩토링을 하고있는데 그전부터 오류가 있던 랜덤 색상을 고쳐보려고합니다.

 

이전 랜덤 색상 코드는 다음과 같았는데

 brushColor = '#' + Math.round(Math.random() * 0xffffff).toString(16)

 

헥사코드로 바뀌면서 자릿수가 모자라 검은색 색상과, 경고메세지가 콘솔에 찍히곤 했었습니다. 저만 그런건가 싶긴 하지만 대부분의 블로그가 위와 같이 설명을 해주고있기에 저는 다른 방법으로 해결한것을 정리하려 합니다.

* 랜덤 색상을 계속 누르게되면 위와같이 6자리가 아닌 헥사코드가 나오곤 했습니다.

그래서 처음엔 맨뒤에 0을 추가해줄까 했지만 근본적인 해결이 아닌것같아 다른 방법으로 해결해 줬습니다.

function randomColor(){
    const r = Math.floor(Math.random() * 256);
    const g = Math.floor(Math.random() * 256);
    const b = Math.floor(Math.random() * 256);
    const randomNumber = Math.floor(Math.random() * 0xf).toString(16)
    let rgb = `${r},${g},${b}`
    rgb = rgb.split(',').map((x) => parseInt(x.replace(/[^0-9]/g,''),10).toString(16).padStart(2,randomNumber)).join('')
    colorInput.value = "#" + rgb;
}

 

r,g,b 각각 랜덤한 숫자를 뽑아내주고, 그것을 rgb로 합쳐서 input[type='color'] value 안에 넣어주는 코드인데 input value의 값이 헥사여야 하기때문에 rgb코드를 헥사로 바꿔주는 코드도 같이 써줬습니다. 헥사로 바꿀때 자릿수가 모자란 부분을 padStart를 사용해서 randomNumber를 넣어줌으로써 해결했습니다.

 

오류없이 잘 작동 합니다!

저작자표시 비영리 변경금지 (새창열림)

'Javascript' 카테고리의 다른 글

[JS] classList 메소드  (0) 2023.03.07
[Node.js] 정적 파일 경로 설정  (0) 2022.12.19
html class 추가, 삭제하기  (0) 2022.11.28
제곱, 세제곱 관련 자바스크립트 내장 함수  (0) 2022.10.14
소수점 처리 방법에 따른 내장 함수  (0) 2022.10.13
    'Javascript' 카테고리의 다른 글
    • [JS] classList 메소드
    • [Node.js] 정적 파일 경로 설정
    • html class 추가, 삭제하기
    • 제곱, 세제곱 관련 자바스크립트 내장 함수
    개발자 혜진
    개발자 혜진
    잊어버리지 않기위한 개발 블로그

    티스토리툴바