본문 바로가기
JavaScript

JavaScript <event 1>

by wlals5855 2024. 6. 7.

이벤트 활용시 사용 될 랜덤 숫자 생성 & 랜덤 색상 생성 함수

 

HTML

 

 
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>JS 이벤트 01</title>
  <style>
    button {
      margin: 5px;
      padding: 20px;
    }

    div {
      width: 50px;
      height: 50px;
      border: 1px solid black;
      margin: 10px;
      display: inline-block;
    }
  </style>
</head>
<body>
  <!-- 1. HTML 이벤트 핸들러 프로퍼티 -->
  <button id="bgChange">Change Background Color</button>
  <span id="keydown"></span>

  <hr />

  <!--
    2. 인라인 이벤트 핸들러
    : on속성을 버튼 태그에서 지정하고
    : 해당 속성에서 사용할 기능(함수)을 js파일에서 작성
    >> 유지보수가 어렵고, 코드가 복잡해지기 때문에 권장하지 X
  -->
  <button
    id="textChange"
    style="font-size: 20px;"
    onclick="colorChange()"
  >Change Text Color</button>

  <hr />
  <button onclick="alert('버튼을 클릭하였습니다.')">Press Me</button>

  <hr />
 
  <div>1</div>
  <div>2</div>
  <div>3</div>

  <hr />
  <!-- 3. addEventListener 메서드 사용 -->
  <button class="btnsChange">쿼리셀렉터</button>
  <button class="btnsChange">쿼리셀렉터</button>
  <button class="btnsChange">쿼리셀렉터</button>

  <!-- 4. 이벤트 제거  -->
  <hr />
  <button id="remove">이벤트 제거</button>
 
  <script src="./event01.js"></script>
</body>
</html>
 

 

1)

- random 함수: 랜덤 숫자 생성

Math.reandom(): 0이상 1미만의 부동 소수점 난수(랜덤 숫자)을 반환

Math.random() * (number + 1): 0dltkd number + 1 미만의 범위의 난수가 반환

ex) number = 100인 경우 

>> 0이상 101미만의 실수 생성

 

- Math.floor(): 괄호 안의 주어진 숫자를 내람하여 가장 가까운 정수를 생성(반환)

ex) 위의 식에 이어서 0부터 101미만의 정수 생성

 
function random(number) {
  return Math.floor(Math.random() * (number + 1));
}
 

 

2)  generateRandomColor 함수의 정의: 랜덤 색상 생성

 
function generateRandomColor() {
  // 'rgb(x, y, z)'의 형식과 동일
  // : x, y, z의 값에 0부터 255까지의 무작위 정수를 사용
  return `rgb(${random(255)}, ${random(255)}, ${random(255)})`;
}
 

 

1. 이벤트 정의

: 웹 페이지에서 발생하느 대부분의 일(사건)을 의미

ex) 사용자가 버튼 클릭, 웹 페이지가 로드, input필드에 입력하는 것 등

 

2. 이벤트 핸들링 (handle: 다루다)

- 특정 이벤트에 반응해서 특정 동작을 실행하는 것을 의미

- 이벤트 핸들러(이벤트 리스너)는 특정 이벤트가 발생했을 때 호출되는 함수

ex) '사용자가 버튼을 클릭'했을 때 'alret창이 실행'되도록 작성

 

3. 이벤트 핸들러 '등록' 방법

 

1) HTML 이벤트 핸들러 속성(프로퍼티)

- HTML 요소에 직접 onclick, onload, onchange 등의 이벤트 핸들러 속성을 설정하는 방법

- HTML 요소를 JS의 객체로 가졀와서 이벤트 핸들러 프로퍼티 함수를 할당

>> HTML과 CSS분리 가능 - 유지 보수 쉬움

 

- 웹문서에 가져오느 HTML요소는 객체로 저장

 
const bgButton = document.querySelector("#bgChange");

bgButton.onmouseover = function () {
  const randomColor = generateRandomColor(); // rgb(x, y, z)

  document.body.style.backgroundColor = randomColor;
};
 

> bgButton 상수에 버튼 태그에 대한 참조(주소값)를 저장

> onclick, onmounseout 프로퍼티는 이벤트 핸들러 속성

 

on키워드 - 이벤트 핸들러

 

'JavaScript' 카테고리의 다른 글

JavaScript <event 3> 기본 행동 방지 이벤트  (0) 2024.06.09
JavaScript <event 2> 색상 변경 이벤트  (0) 2024.06.09
JavaScript <객체Object4>  (0) 2024.06.06
JavaScript <객체Object 3>  (0) 2024.06.05
JavaScript <객체Object 2>  (0) 2024.06.04