js

JS Event

javascript

Posted by 동식이 블로그 on May 1, 2019

JS Event

EventListener

  • 마우스 이벤트
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
    <div id="me"></div>
    <button id="my-btn">click</button>

    <script>
        /*
            [무엇]을  [언제]   [어떻게] 한다.
            버튼을   클릭하면     뿅    한다.
        */

        // 1. 무엇 => 버튼
        const button =  document.querySelector('#my-btn')
        console.log(button)

        // 3. 어떻게 => 뿅이라는 단어를 쓴다
        const what = (e) => {
            const area = document.querySelector('#me')
            area.innerHTML = "<h1>뿅</h1>"
            console.log(e)
        }
        
        // 2. 언제 => 버튼을 '클릭' 하면
        // button.addEventListener('click', what)
        // what대신에 익명함수로 : 1회용으로 쓰기 위해
        // event에 소괄호는 함수의 인자가 한개이기 때문에 생략이 가능
        button.addEventListener('click', event => {
            const area = document.querySelector('#me')
            area.innerHTML = "<h1>뿅</h1>"
            console.log(event)
        })
        
		// 1. 무엇 => 얍 버튼
        const yap = document.querySelector('#hello-btn')
        // 2. 언제 => 얍 버튼을 '클릭' 하면
        yap.addEventListener('click', event => {
            // 3. 어떻게 => 안녕하세요라는 단어의 색깔을 바꾼다
            const hello = document.querySelector('#hello')
            hello.style.color = 'red'
        })
    </script>
</body>
</html>
  • 키보드 이벤트
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        .bg {
            background-color: #F7F7F7;
            display: flex;
            justify-content: center;
            align-items: center;
            min-height: 100vh;
        }
    </style>
</head>
<body>
    <div class="bg">
        <img id="dino" width="100px" heigth="100px" src="https://is4-ssl.mzstatic.com/image/thumb/Purple118/v4/88/e5/36/88e536d4-8a08-7c3b-ad29-c4e5dabc9f45/AppIcon-1x_U007emarketing-sRGB-85-220-0-6.png/246x0w.jpg" alt="dino">
    </div>

    <script>
        const dino = document.querySelector('#dino')
        dino.addEventListener('click', (e) => {
            console.log("아야")
        })
   
        let x = 0
        let y = 0
        document.addEventListener('keydown', e => {
            // console.log(e)
            if(e.code === "ArrowUp"){
                console.log("위 화살표")
                y -= 20
                dino.style.marginTop = `${y}px`
            }else if(e.code === "ArrowDown"){
                console.log("아래 화살표")
                y += 20
                dino.style.marginTop = `${y}px`
            }else if(e.code === "ArrowLeft"){
                console.log("왼쪽 화살표")
                x -= 20
                dino.style.marginRight = `${x}px`
            }else if(e.code === "ArrowRight"){
                console.log("오른쪽 화살표")
                x += 20
                dino.style.marginRight = `${x}px`
            }else{
                console.log(`${e.code}버튼을 눌렀습니다`)
            }
        })
    </script>
</body>
</html>

webAPI

  • JSONPlaceholder
    • rest api를 테스트할 수 있도록
  • javascript로 요청보내기
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
    <script>
        // const URL = "https://jsonplaceholder.typicode.com/posts"

        // // 인스턴스 생성
        // const XHR = new XMLHttpRequest()

        // // (1)어떤방식인지, (2)어디로 보낼지
        // XHR.open('GET', URL)
        // XHR.send()
        // XHR.addEventListener('load', function(e){
        //     const result = e.target.response
        //     // console.log(result)
        //     // javascript에서 읽을 수 있는 데이터로 변환
        //     const parseData = JSON.parse(result)
        //     console.log(parseData)
        // })

        const URL = "https://jsonplaceholder.typicode.com/posts"
        const XHR = new XMLHttpRequest()

        XHR.open('POST', URL)
        // Header에  
        XHR.setRequestHeader(
            'Content-type', 'application/json;charset=UTF-8'
        )
        // 이 데이터를 post방식으로 서버에 전달
        const data = {
            title : "안녕하세요",
            body : "곧 있으면 점심시간", 
            userId : 1
        }
        // data를 json으로 바꿔서 보내기
        const jsonData = JSON.stringify(data)
        XHR.send(jsonData)
        XHR.addEventListener('load', function(e){
            const result = e.target.response
            // javascript에서 읽을 수 있는 데이터로 변환
            const parseData = JSON.parse(result)
            console.log(parseData)
        })
    </script>
</body>
</html>