본문 바로가기

언어/javascript

자바스크립트 - 이벤트

1
2
3
4
5
6
7
8
9
1. new image() 로 생성
var banana = new image();
banana.src = 'banana.png';
 
2.DOM 객체 선택 후 
var myimg = document.getElementById('myimg');
myimg.src = banana.src = 'banana.png';
 
 
cs

A>이벤트 객체

-- 발생한 이벤트에 관련된 다양한 정보를 담은 객체.

-- 이벤트가 처리되면 이벤트 객체 소멸.

--이벤트 객체는 이벤트 리스너 함수의 첫번째 매개 변수에 전달됨

 

1. 이벤트 객체에 있는 정보

-- type = 현재 발생한 이벤트 종류

-- target = 이벤트 발생시킨 객체

-- currenTarget = 이벤트 리스너 실행하고 있는 DOM 객체

-- defaultPrevented = 이벤트 디폴트 행동이 취소되었는지 true / false 값

-- prevnetDefault() = 이벤트 디폴트 행동 취소시킴

 

2.디폴트 행동

특정 이벤트에 대한  html 태그의 기본 행동

예시

<a> 태그는 click 이벤트 발생시 웹페이지 이동

<submit> 은 click 이벤트 발생시 폼 데이터 전송

<input type='checkbox'> 는 click 이벤트 발생시 선택 

 

3.디폴트 행동을 막는 방법

-- 전제 조건 : cancelable 프로퍼티가 true 일때 

 

-- 이벤트 리스너에서 false 리턴

   예시

    <a href='naver.com' onclick='return false'>

 

-- prevnetDefault

    <a href='naver.com' onclick='event.preventDefault();'>

 

4.이벤트 흐름

이벤트가 발생하면 window 객체에 먼저 도달하고,

DOM 트리를 따라 이벤트 타겟에 도착한다.

그리고 다시 정반대로 window 객체로 올라간 후  사라진다.

 

캡처 단계 : window -> 타겟

버블 단계 : 타겟 -> window

 

 

B> 이벤트 생성

1.HTML 태그 내에 작성

2.DOM 객체 이벤트 리스너 프로퍼티에 작성

3.DOM 객체 addEventListener() 이용

 

예시

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<script>
    var p ; 
    function init(){
        p =document.getElementById('p');
        p.onmouseover = over;
        p.onmouseout = out;
    }
    function over(){
        p.style.backgroundColor = 'orchid';
    }
    function out(){
        p.style.backgroundColor = 'white';
    }
</script>
cs

 

B>addEvenetListener()

 

예시1. addEventListener 사용

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<script>
var p ;     
function init(){
    p =document.getElementById('p');
    p.addEventListener('mouseover',over);//over() 로 하면 안된다.
    p.addEventListener('mouseout',out);
    }
    function over(){
        p.style.backgroundColor = 'orchid';
    }
    function out(){
        p.style.backgroundColor = 'white';
    }
</script>
cs

 

예시2 . 익명함수로 할 때

1
2
3
4
5
6
7
8
9
10
11
12
<script>
    var p ; 
    function init(){
        p =document.getElementById('p');
        p.addEventListener('mouseover',()=>{
            p.style.backgroundColor = 'orchid';
        });
        p.addEventListener('mouseout',()=>{
            p.style.backgroundColor = 'white';
        });
    }
</script>
cs

 

C> 캡쳐 리스너

-- 이벤트 등록시 캡쳐 리스너인지 버블 리스너인지 구분함

addEventListener('이벤트 종류',이벤트 함수 ,true) -- 캡처 리스너일시 true

addEventListener('이벤트 종류',이벤트 함수 ,true) -- 버블 리스너일시 false

 

D>마우스 핸들링

 

1.클릭 관련

-- x, y : 타겟 객체 부모 객체 내에서의 마우스 좌표

-- clientX, clientY : 브라우저 윈도우의 마우스 좌표

-- screenX, screenY : 스크린 기준의 좌표

-- button : 눌러진 마우스 버튼 

               -- 0 : 아무것도 안눌림

               -- 1 : 좌클릭

               -- 2 : 우클릭

               -- 3 : 양클릭

               -- 4 : 중간

-- wheelDelta : 마우스 휠이 구른 방향

                    -- 양수: 위쪽(120)

                    -- 음수: 아래쪽(-120)

 

2.이벤트 관련

-- onmousedown : 마우스 버튼을 누르는 순간

-- onmouseup : 눌러진 버튼이 놓여지는 순간

-- onmouseover : 마우스가 태그 위로 올라오는 순간. 자식 영역 포함

-- onmouseout : 마우스가 태그 위로 올라오는 순간. 자식 영역 포함

-- onmouseenter : 마우스가 태그 위로 올라오는 순간. 버블 단계 없음

-- onmouseleave : 마우스가 태그 위로 올라오는 순간. 버블 단계 없음

-- onwheel : HTML 태그에 마우스 휠이 구르는 동안 계속 호출

 

3.context menu

context menu : html 태그 위에 마우스 오른쪽 버튼 클릭 시 나오는 항목

우클릭을 하면

oncontextmenu 리스너가 먼처 호출된다.

document.oncontextmenu = function(){

    return false; // 컨텍스트 메뉴 금지

}

 

 

E>onload

window 객체에서 발생

웹 페이지 로딩 완료시 호출

 

1.작성 방법

window.onload= function()

<body onload=function() >

 

2.이미지 로딩 완료

--동적으로 이미지 생성

1
2
3
4
5
6
7
8
9
1. new image() 로 생성
var banana = new image();
banana.src = 'banana.png';
 
2.DOM 객체 선택 후 
var myimg = document.getElementById('myimg');
myimg.src = banana.src = 'banana.png';
 
 
cs

 

 

F>focus

onblur : 포커스를 잃을 때 발생

onfocus : 포커스를 얻을 때 발생

 

G>라디오 버튼

document.getElementById() 로 가지고 오면 배열값을 리턴.

선택이 되었다면 true

 

체크박스도 마찬가지

선택 되었다면 true

 

H> select 객체와 onchage

1
2
3
4
5
6
<select id="fruits">
    <option value="1">딸기</option>
    <option value="2" selected>바나나</option>
    <option value="3">사과</option>
</select>

일때

var select =document.getElementById('fruits');
var index =select.selectedIndex;
--선택된 옵션의 인덱스

//옵션 선택
select.selectedIndex =2;
select.options[2].selected = true;

//혹은 onchange 리스너 사용

<select id="fruits" onchange="drawImage()">...</select>

cs

 

I>키 이벤트

onkeydown : 키가 눌러지는 순간 호출

onkeypress : 문자키와 enter, esc, space 가 눌러질때 호출

onkeyup : 눌러진 키가 떨어질때 호출

 

J> onreset 과 onsubmit 

onreset : reset 버튼 눌릴때 

false 를 리턴하면 리셋 안된다.

 

onsubmit : submit 버튼 눌릴때 

false 를 리턴하면 리셋 안된다.

'언어 > javascript' 카테고리의 다른 글

javascipt - 웹 워커(web worker)  (0) 2021.02.15
BOM  (0) 2021.02.15
자바 스크립트 - 객체 생성과 prototype  (0) 2021.02.08
자바스크립트 - 함수와 스코프  (0) 2021.02.08
자바 스크립트 기본 제어문2  (0) 2021.02.08