AddEvenListener()-1

조익준·2023년 4월 16일
0

Javascript

목록 보기
11/16

AddEventListener()

이벤트 리스너란 이벤트가 발생했을 때 그 처리를 담당하는 함수를 말한다. 특정 타입의 이벤트가 임의로 정한 요소에서 발생하면, 웹 브라우저는 그 요소에 등록된 이벤트 리스너를 실행한다. 형식은 다음과 같다.

대상객체.addEventListener("이벤트명", f() => {실행할 함수});

addEventListener()의 이벤트명은 'on'을 제외한 이벤트명을 적어야한다.

마우스를 움직이면 박스의 좌표가 실시간으로 출력되도록 만들어보자.

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Step06_Event2.html</title>
    <style>
        .box{
            width: 300px;
            height: 300px;
            border: 1px solid red;
            background-color: yellow;
            cursor: crosshair;
        }
    </style>
</head>
<body>
    <h1>마우스 이벤트 처리하기</h1>
    <div class="box"></div>
    <script>
        document.querySelector(".box").addEventListener("mousemove", (event) => {
            console.log(event); 
            // offsetX, offsetY div안에서의 좌표이다 // pageX, pageY 웹브라우저 안에서의 좌표이다. // screenX, screenY 모니터안에서의 좌표이다. 
            // target 이벤트가 일어난 요소의 참조값이다.

            // 이벤트가 일어난 곳의 상대좌표
            let x = event.offsetX;
            let y = event.offsetY;

            // 이벤트가 일어난 요소(div)의 innerText로 출력
            event.target.innerText = "x:" + x + " y:" + y; // document.querySelector(".box") == event.target
        });
    </script>
</body>
</html>

추가로 key이벤트에 대해서 알아보자.

키보드 이벤트
1. keyup: 키보드를 눌렀을 시 발생
2. keydown: 키보드를 눌렀다가 떼었을 때 발생
3. keypress: 사용자가 키보드를 눌렀을 때 발생하나, Alt, Ctrl, Shift, Esc 키등 몇 가지 키에서는 이 이벤트를 발생시키지 않아 사용권장x

ex)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <h1>key event 활용해보기</h1>
        <input type="text" id = "one">
    <div id = "key"></div>
        <input type="text" id = "two">
    <script>
        document.querySelector("#one").addEventListener("keyup", (e) => {
            let input = e.target.value;
            
            document.querySelector("#key").innerText = input;
            
            if(e.key=="Enter") {
                e.target.value = "";
                document.querySelector("#key").innerText = "";
                document.querySelector("#two").value = input;
            }
            
        })
    </script>
</body>
</html>
profile
비가역적인사람

0개의 댓글