2017-12-04 14 views
0

자바 스크립트를 사용하여 페인트와 유사한 웹 애플리케이션을 작성하려고합니다. 사용자는 픽셀 격자 위에 마우스로 도형을 "그릴"수 있어야합니다. DOM eventlisteners를 사용하여 어떻게 작동합니까? 자바 스크립트에서 마우스 이벤트 결합하기

td.addEventlistener("click", setpixel); 

그래서 내가 하나 개의 EventListener에 mousedown과 마우스 오버를 결합해야 추측 : 사용자가 하나 하나 하나의 픽셀을 설정 할 수있는이 라인

. 그게 가능하니?

+0

모두 코드 작성 방법에 따라 달라집니다. – epascarello

+0

그것은 많은 사람들이 말하지 않는 것에 달려 있습니다. 사용자가 마우스를 잡고 마우스 위치에 "픽셀"을 페인트하고 싶습니까? 모양과 모양에 대한 이야기는 DOM의 시뮬레이션 된 픽셀보다 복잡하기 때문입니다. Canvas를 사용할 수 없습니까? 여기에 그 좋은 예가 있습니다. http://www.williammalone.com/articles/create-html5-canvas-javascript-drawing-app/ – gonxalo

답변

1

본질적으로 이벤트 리스너를 결합 할 수 없습니다. 그러나 여러 청취자를 사용하여 커서의 상태를 추적 할 수 있습니다.

var mouseIsDown = false 
el.addEventListener('mousedown', function(){mouseIsDown = true}) 
el.addEventListener('mouseup', function(){mouseIsDown = false}) 

그런 다음 마우스를 움직일 때 수행 할 작업을 결정해야합니다.

el.addEventListener('mousemove', function(){ 
    if(mouseIsDown){ 
     // implement drawing logic here 
    } 
}) 

이 질문은 답변하기에 너무 광범위하지만 도움이 되길 바랍니다.