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

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

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. }

 

번호 제목 글쓴이 날짜 조회 수
128 characters from ISO 8859-1 황제낙엽 2020.11.10 32434
127 [ActiveX] CAB파일 수동 설치(레지스트리 등록) 방법 황제낙엽 2017.03.16 3580
126 What’s wrong with extending the DOM 황제낙엽 2011.03.28 3001
125 iframe 다루기 황제낙엽 2017.02.27 1945
124 네이버의 무료 나눔 글꼴 황제낙엽 2020.05.06 1348
123 <img> image 엘리먼트에서 이미지를 base64로 인코딩해서 사용하기 file 황제낙엽 2017.04.01 1233
122 Document documentMode Property file 황제낙엽 2011.10.04 1070
121 User Agent 에 관련된 링크 황제낙엽 2017.11.20 1009
120 encoding, charset, code page, UTF-8, UNICODE ... file 황제낙엽 2013.08.07 972
119 [MSDN] Document Object Model Prototypes (IE8) 황제낙엽 2011.03.24 941
118 ASCII Table and Description file 황제낙엽 2011.08.10 930
117 pt, px, em, % 비교표 file 황제낙엽 2011.05.24 875
116 document.domain (from mozilla.org) 황제낙엽 2013.03.13 728
115 Canvas 곡선 그리기 file 황제낙엽 2016.08.22 617
114 [보안] 혼합 콘텐츠(Mixed Content) 방지 황제낙엽 2017.04.13 569
113 Flash OBJECT and EMBED tag attributes 황제낙엽 2011.03.02 492
» Canvas 도형의 클릭 이벤트 처리 황제낙엽 2016.08.22 487
111 로드밸런싱(L4)+아파치를 운영시 etag제거로 캐시 성능 최적화 file 황제낙엽 2018.03.28 485
110 스타일-보더 테스트 관련 레퍼런스 황제낙엽 2013.01.04 468
109 ActiveX 에서 CLASSID 가 맞지 않을때의 현상 황제낙엽 2017.02.17 458