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 | 31 |
Tags
- set
- Spring
- 상속
- 코드푸시
- codepush
- map
- 타입스크립트
- array
- interface
- xlsx-js-style
- meatadata
- code-push-standalone
- app.post
- 페이지네이션
- generic
- TS
- supabase auth
- Filter
- 슬라이딩윈도우
- async
- 스크롤이벤트
- Next.js
- supabase 페이지네이션
- javascript
- react
- extends
- 이진탐색
- 글또10기x코드트리
- supabase authentication
- reactnative
Archives
- Today
- Total
rhanziy
javascipt. 랜덤 그라데이션 배경 본문
버튼을 누르면 colors 배열의 색을 랜덤으로 left, right 변수에 담아 그라데이션 배경으로 채운다.
같은 색이 채워지는걸 방지하고자 left와 right색이 같으면 컬러를 뽑는 함수를 다시 실행한다.
기능을 1. 색 랜덤 뽑기, 2. 색을 비교하여 배경색 바꾸기로 총 2개로 분리해봤는데 굳이 안그래도 될 것 같다.
indexOf()함수를 사용해보자.
- indexOf 함수는, 문자열(string)에서 특정 문자열(searchvalue)을 찾고,
검색된 문자열이 '첫번째'로 나타나는 위치 index를 리턴합니다. - 파라미터
- searchvalue : 필수 입력값, 찾을 문자열
- position : optional, 기본값은 0, string에서 searchvalue를 찾기 시작할 위치
- 찾는 문자열이 없으면 -1을 리턴합니다.
- 문자열을 찾을 때 대소문자를 구분합니다.
function pickColor(){
let bgColor = [];
while(bgColor.length < 2){
const index = colors[Math.floor(Math.random() * colors.length)];
if (!(bgColor.indexOf(index) > -1) {
bgColor.push(index);
}
}
body.style.background = `linear-gradient(to right, ${bgColor[0], ${bgColor[1]})`;
}
button.addEventListener("click", pickColor);
bgColor배열에 들어온 색(문자열)이 없으면 -1을 반환 => push,
이미 있으면 0(배열의 0번째에 있음을 뜻함)을 리턴할테니 0이 아니면 push를 하여
배열 색 중복을 방지한다.
'Html_css_js' 카테고리의 다른 글
javascript. 게임 만들기 - double jump 구현😵 (0) | 2022.03.02 |
---|---|
javascript. Arrow Function의 this 바인딩(펌) (0) | 2022.02.23 |
javascript. Math.random을 이용한 랜덤숫자게임 (0) | 2022.02.16 |
javascript. D-Day카운터 만들기 (0) | 2022.02.16 |
js. document객체 (0) | 2022.02.07 |
Comments