[ JavaScript ] 자바스크립트 기본 문법 | 마우스 이벤트(click,dbclick,mousedown,shtftKey,altKey,clientX,clientY)

2021. 2. 10. 03:08·Archive/Develop
728x90
반응형

이미지 출처 :     https://commons.wikimedia.org/wiki/File:JavaScript-logo.png

 

 

 

 

 

 

 

해당 포스팅은 생활코딩의 이고잉 님의 강의를 기반으로 개인 공부용으로 정리한 포스팅임을 미리 알립니다.

 

 

 


 

 

자바스크립트 기본 문법  ::  마우스 이벤트

 

 

 

웹브라우저는 마우스와 관련해서 다양한 이벤트 타입을 지원합니다.

 

 

 

  • click
    클릭했을 때 발생하는 이벤트. 

 

  • dblclick
    더블클릭을 했을 때 발생하는 이벤트

 

  • mousedown
    마우스를 누를 때 발생

 

  • mouseup
    마우스버튼을 땔 때 발생

 

  • mousemove
    마우스를 움직일 때

 

  • mouseover
    마우스가 엘리먼트에 진입할 때 발생

 

  • mouseout
    마우스가 엘리먼트에서 빠져나갈 때 발생

 

  • contextmenu
    컨텍스트 메뉴가 실행될 때 발생

 

 

 

자바스크립트 기본 문법  ::  마우스 이벤트(키보드 조합)

 

 

 

마우스 이벤트가 호출될 때 특수키(alt, ctrl, shift)가 눌려진 상태를 감지해야 한다면

이벤트 객체의 프로퍼티를 사용하면 됩니다.

 

 

이 때 사용하는 프로퍼티는 아래와 같습니다.

 

 

 

  • event.shiftKey
  • event.altKey
  • event.ctrlKey

 

 

프로퍼티 이름만 봐도 뭐가 뭔지 아시겠죠?

 

 

 

 

 

자바스크립트 기본 문법  ::  마우스 이벤트(포인터 위치)

 

마우스 이벤트와 관련한 작업에서는

마우스 포인터의 위치를 알아내는 것이 중요할 때가 있는데,

이런 경우 이벤트 객체의 clientX와 clientY를 사용합니다.

 

 

 

아래는 위에 소개한 이벤트와 관련된 기능을 종합적으로 보여주는 코드입니다.

 

 

 

 

<html>
    <head>
        <style>
            body{
                background-color: black;
                color:white;
            }
            #target{
                width:200px;
                height:200px;
                background-color: green;
                margin:10px;
            }
            table{
                border-collapse: collapse;
                margin:10px;
                float: left;
                width:200px;
            }
            td, th{
                padding:10px;
                border:1px solid gray;
            }
        </style>
    </head>
    <body>
        <div id="target">
 
        </div>
        <table>
            <tr>
                <th>event type</th>
                <th>info</th>
            </tr>
            <tr>
                <td>click</td>
                <td id="elmclick"></td>
            </tr> 
            <tr>
                <td>dblclick</td>
                <td id="elmdblclick"></td>
            </tr>
            <tr>
                <td>mousedown</td>
                <td id="elmmousedown"></td>
            </tr>         
            <tr>
                <td>mouseup</td>
                <td id="elmmouseup"></td>
            </tr>         
            <tr>
                <td>mousemove</td>
                <td id="elmmousemove"></td>
            </tr>         
            <tr>
                <td>mouseover</td>
                <td id="elmmouseover"></td>
            </tr>         
            <tr>
                <td>mouseout</td>
                <td id="elmmouseout"></td>
            </tr>
            <tr>
                <td>contextmenu</td>
                <td id="elmcontextmenu"></td>
            </tr>         
        </table>
        <table>
            <tr>
                <th>key</th>
                <th>info</th>
            </tr>
            <tr>
                <td>event.altKey</td>
                <td id="elmaltkey"></td>
            </tr>
            <tr>
                <td>event.ctrlKey</td>
                <td id="elmctrlkey"></td>
            </tr>
            <tr>
                <td>event.shiftKey</td>
                <td id="elmshiftKey"></td>
            </tr>
        </table>
        <table>
            <tr>
                <th>position</th>
                <th>info</th>
            </tr>
            <tr>
                <td>event.clientX</td>
                <td id="elemclientx"></td>
            </tr>
            <tr>
                <td>event.clientY</td>
                <td id="elemclienty"></td>
            </tr>
        </table>
        <script>
        var t = document.getElementById('target');
        function handler(event){
            var info = document.getElementById('elm'+event.type);
            var time = new Date();
            var timestr = time.getMilliseconds();
            info.innerHTML = (timestr);
            if(event.altKey){
                document.getElementById('elmaltkey').innerHTML = timestr;
            }
            if(event.ctrlKey){
                document.getElementById('elmctrlkey').innerHTML = timestr;
            }
            if(event.shiftKey){
                document.getElementById('elmshiftKey').innerHTML = timestr;
            }
            document.getElementById('elemclientx').innerHTML = event.clientX;
            document.getElementById('elemclienty').innerHTML = event.clientY;
        }
        t.addEventListener('click', handler);
        t.addEventListener('dblclick', handler);
        t.addEventListener('mousedown', handler);
        t.addEventListener('mouseup', handler);
        t.addEventListener('mousemove', handler);
        t.addEventListener('mouseover', handler);
        t.addEventListener('mouseout', handler);
        t.addEventListener('contextmenu', handler);
        </script>
    </body>
</html>

 

 

 

 

 

 

 

 

 

 

 

 

 

 

728x90
반응형

'Archive > Develop' 카테고리의 다른 글

[ JavaScript ] 자바스크립트 기본 문법 | Ajax | XMLHttpRequest | GET & POST 방식  (0) 2021.02.10
[ JavaScript ] 자바스크립트 기본 문법 | jQuery 이벤트 (on API 사용법)  (0) 2021.02.10
[ JavaScript ] 자바스크립트 기본 문법 | 문서로딩(load, DOMContentLoaded) | 스크립트 태그 위치  (0) 2021.02.10
[ JavaScript ] 자바스크립트 기본 문법 | 폼(form)태그 이벤트(submit, change, focus,blur)  (0) 2021.02.10
[ JavaScript ] 자바스크립트 기본 동작 취소(preventDefault)  (0) 2021.02.10
'Archive/Develop' 카테고리의 다른 글
  • [ JavaScript ] 자바스크립트 기본 문법 | Ajax | XMLHttpRequest | GET & POST 방식
  • [ JavaScript ] 자바스크립트 기본 문법 | jQuery 이벤트 (on API 사용법)
  • [ JavaScript ] 자바스크립트 기본 문법 | 문서로딩(load, DOMContentLoaded) | 스크립트 태그 위치
  • [ JavaScript ] 자바스크립트 기본 문법 | 폼(form)태그 이벤트(submit, change, focus,blur)
코뮤(commu)
코뮤(commu)
코딩으로 커뮤니케이션하는 코뮤입니다 😎
  • 코뮤(commu)
    코뮤(COMMU)
    코뮤(commu)
  • 전체
    오늘
    어제
    • 분류 전체보기
      • Archive
        • Hacking
        • Develop
        • ETC
      • Algorithm
      • DB&Infra
      • ETC
      • Node
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • IT지식보따리
    • IT가 맛있다
    • IT 천재
  • 공지사항

    • 배고픕니다
  • 인기 글

  • 태그

    오라클
    자바스크립트 객체
    파이썬 문제
    Python
    코드업 파이썬 기초 100제
    Oracle
    백준 문제풀이
    파이썬
    장고
    백준 파이썬
    C++
    카카오 100일 프로젝트
    Git
    자바스크립트
    Django
    파이썬 백준
    파이썬 알고리즘
    백준 풀이
    자바스크립트 API
    oracle db
    javascript
    보안뉴스
    코드업 기초
    docker
    코드업
    Codeup
    파이썬 기초
    파이썬 기초 문제
    백준
    비박스
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
코뮤(commu)
[ JavaScript ] 자바스크립트 기본 문법 | 마우스 이벤트(click,dbclick,mousedown,shtftKey,altKey,clientX,clientY)
상단으로

티스토리툴바