DOM Canvas 도형의 클릭 이벤트 처리

황제낙엽 2016.08.22 07:14 조회 수 : 263

sitelink1 http://blog.naver.com/shadowbug/220741936442 
sitelink2  
sitelink3  
sitelink4  
extra_vars5  
extra_vars6  

도형의 클릭 이벤트를 처리하기 위해서는,

Path2D객체를 이용해서 Path정보를 따로 저장해 놓고, 이 정보로 클릭 여부를 체크 할 수 있다.

 

Path2D 객체

context의 패스작업을 따로 보관하는 객체

context에서 제공하는 Path관련 함수들을 사용 할 수 있다.

 

html

  1. <body onload="load(this)">

  2.     <canvas  id="draw" onclick="clickCanvas(window.event)" width="300px" height="300px;"></canvas>

  3. </body>

 

javascript

Path2D 객체로 Path작업을 분리시키고, 

따로 보관한 Path2D객체를 context객체의 isPointInPath 객체로 포인트 접근 여부를 확인한다.

  1. var ctx = null;

  2. var path = null;

  3.  

  4. function load(target) {

  5.     // 실제로 그려지는 위치의 캔버스 생성

  6.     var canvas = document.getElementById("draw");

  7.     ctx = canvas.getContext("2d");

  8.    

  9.     path = new Path2D();

  10.     path.fillStyle = "rgb(255, 0, 0)";

  11.     path.arc(100, 100, 100, 0, 2*Math.PI, true);

  12.     ctx.stroke(path);

  13. }

  14.  

  15. function clickCanvas(event) {

  16.     var x = event.pageX;

  17.     var y = event.pageY;

  18.     if(ctx.isPointInPath(path, x,  y)) {

  19.         alert("in circle");

  20.     } else {

  21.         alert("out circle");

  22.     }

  23. }

 

번호 제목 글쓴이 날짜 조회 수
125 characters from ISO 8859-1 황제낙엽 2020.11.10 28619
124 [ActiveX] CAB파일 수동 설치(레지스트리 등록) 방법 황제낙엽 2017.03.16 3162
123 네이버의 무료 나눔 글꼴 황제낙엽 2020.05.06 1110
122 <img> image 엘리먼트에서 이미지를 base64로 인코딩해서 사용하기 file 황제낙엽 2017.04.01 977
121 Document documentMode Property file 황제낙엽 2011.10.04 906
120 encoding, charset, code page, UTF-8, UNICODE ... file 황제낙엽 2013.08.07 731
119 pt, px, em, % 비교표 file 황제낙엽 2011.05.24 731
118 [MSDN] Document Object Model Prototypes (IE8) 황제낙엽 2011.03.24 716
117 User Agent 에 관련된 링크 황제낙엽 2017.11.20 595
116 Canvas 곡선 그리기 file 황제낙엽 2016.08.22 424
115 document.domain (from mozilla.org) 황제낙엽 2013.03.13 407
114 ASCII Table and Description file 황제낙엽 2011.08.10 357
113 DIV태그로 테이블 만들기 황제낙엽 2005.12.24 300
112 Object의 주요 속성 황제낙엽 2011.02.14 278
111 모바일 브라우저에서 iframe 의 스크롤 문제 황제낙엽 2012.01.12 267
» Canvas 도형의 클릭 이벤트 처리 황제낙엽 2016.08.22 263
109 Style cssText Property 황제낙엽 2012.09.13 257
108 스타일-보더 테스트 관련 레퍼런스 황제낙엽 2013.01.04 248
107 HTML5 강좌 2강 - HTML5 시맨틱웹을 위한 구성요소 file 황제낙엽 2016.12.03 246
106 로드밸런싱(L4)+아파치를 운영시 etag제거로 캐시 성능 최적화 file 황제낙엽 2018.03.28 226