사각형에 클릭 이벤트를 추가 하시겠습니까?

sikfzn

나는이 모든 것에 완전히 익숙하지 않으므로 도움을 주시면 감사하겠습니다.

캔버스를 사용하여 버튼을 그리고 여기에 상호 작용을 추가하는 과제가 있습니다. 버튼을 그렸지만 클릭해도 아무 일도 일어나지 않습니다. '이름이 무엇입니까?'라는 메시지가 표시되기를 원합니다.

감사

편집 : 첫 번째 질문에 대한 답이 있습니다. 대단히 감사합니다. 이제 버튼의 텍스트가 다소 나빠 보입니다. 무엇이 잘못되었는지 알고 계십니까? 그림

//Setup canvas
const canvas = document.getElementById("graphics");
canvas.width = document.documentElement.clientWidth;
canvas.height = document.documentElement.clientHeight;
const context = canvas.getContext("2d");

//Mouse variables 
let mouseX;
let mouseY;
let isMouseDown;

//Handle mouse events
function handleMouseMove(event) {
    mouseX = event.pageX;
    mouseY = event.pageY;
}

function handleMouseDown(event) {
    isMouseDown = true;
}

function handleMouseUp(event) {
    isMouseDown = false;
}

//Handle animation
function draw() {
// Draws the button (rectangle)
context.beginPath()
context.strokeStyle = "black";
context.strokeRect(125, 125, 150, 75);
context.fill();
context.closePath


// Draws text inside button

context.beginPath ();
context.font = '15px Georiga';
context.fillText ('Click this button!', 145, 168);
context.closePath ();

if (mouseDown && mouseX >= 125 && mouseX <= 275 && mouseY >= 125 && mouseY <= 200) {
    prompt('WHat is your name?');
}
    window.requestAnimationFrame(draw);
}

//Set listeners
document.addEventListener("mousedown", handleMouseDown, false);
document.addEventListener("mouseup", handleMouseUp, false);
document.addEventListener("mousemove", handleMouseMove, false);

//Start animation
window.requestAnimationFrame(draw);
<!-- add canvas element -->
<canvas id="graphics">
  Canvas not working!
</canvas>

TomBonynge

이미 거의 얻었습니다! 코드의이 부분에서 :

if (mouseDown && mouseX >= 125 && mouseX <= 275 && mouseY >= 125 && mouseY <= 200) {
    prompt('WHat is your name?');
}

mouseDown 이 true 인지 확인 하고 있지만 mouseDown 이라는 변수가 없습니다 . 당신은 그것을 isMouseDown 이라고 불렀습니다 .

따라서 코드를 다음과 같이 변경해야합니다.

 if (isMouseDown && mouseX >= 125 && mouseX <= 275 && mouseY >= 125 && mouseY <= 200) {
        prompt('WHat is your name?');
    }

다음은 전체 코드입니다.

 //Setup canvas
    const canvas = document.getElementById("graphics");
    canvas.width = document.documentElement.clientWidth;
    canvas.height = document.documentElement.clientHeight;
    const context = canvas.getContext("2d");
    
    //Mouse variables
    let mouseX;
    let mouseY;
    let isMouseDown;
    
    //Handle mouse events
    function handleMouseMove(event) {
        mouseX = event.pageX;
        mouseY = event.pageY;
    }
    
    function handleMouseDown(event) {
        isMouseDown = true;
    }
    
    function handleMouseUp(event) {
        isMouseDown = false;
    }
    
    //Handle animation
    function draw() {
        // Draws the button (rectangle)
        context.beginPath();
        context.strokeStyle = "black";
        context.strokeRect(125, 125, 150, 75);
        context.fill();
        context.closePath;
    
        // Draws text inside button
    
        context.beginPath();
        context.font = "15px Georiga";
        context.fillText("Click this button!", 145, 168);
        context.closePath();
    
        if (isMouseDown && mouseX >= 125 && mouseX <= 275 && mouseY >= 125 && mouseY <= 200) {
            prompt("WHat is your name?");
        }
        window.requestAnimationFrame(draw);
    }
    
    //Set listeners
    document.addEventListener("mousedown", handleMouseDown, false);
    document.addEventListener("mouseup", handleMouseUp, false);
    document.addEventListener("mousemove", handleMouseMove, false);
    
    //Start animation
    window.requestAnimationFrame(draw);

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

DataGridView에 셀 클릭 이벤트 핸들러를 추가 하시겠습니까?

분류에서Dev

마우스 클릭에 숫자를 추가 하시겠습니까?

분류에서Dev

Bing 맵의 다각형에 클릭 이벤트를 추가하고 싶습니다.

분류에서Dev

kendoGridCellTemplate에 클릭 이벤트를 추가하는 방법

분류에서Dev

이벤트 리스너에 "this"를 추가 하시겠습니까?

분류에서Dev

jQuery를 사용하여 클릭시 클래스를 추가하고 제거 하시겠습니까?

분류에서Dev

문서에서 jquery를 사용하여 클릭 이벤트 추적기를 추가 할 때 링크의 클릭 이벤트가 작동하지 않습니다.

분류에서Dev

클릭시 텍스트 영역에 텍스트를 추가 하시겠습니까?

분류에서Dev

WPF-여러 창에 클릭 이벤트를 추가 할 수 있습니까?

분류에서Dev

jQuery를 사용하여 버튼 클릭에 번호를 추가 하시겠습니까?

분류에서Dev

jQuery에서 각 클릭 이벤트에 텍스트를 x 번 추가하는 방법은 무엇입니까?

분류에서Dev

div에 클래스를 추가하면 클릭 이벤트 실행-JQuery

분류에서Dev

HighCharts에서 클릭 이벤트 후 시리즈를 추가하는 방법

분류에서Dev

jqGrid에서 버튼 클릭 이벤트를 추가 할 수 없습니다.

분류에서Dev

다른 클릭 이벤트 내에서 앵커 태그를 클릭 하시겠습니까?

분류에서Dev

버튼 클릭시 게임 루프에 개체를 추가 하시겠습니까?

분류에서Dev

mysql에서 링크를 추출하고 클릭 가능하게 만드시겠습니까?

분류에서Dev

SwiftUI에서 전체보기에 클릭 이벤트를 추가하는 방법

분류에서Dev

Tabpanel에서 ExtJS 탭에 대한 클릭 이벤트를 추가하는 방법

분류에서Dev

jquery를 사용하여 복제 된 개체에 클릭 이벤트를 추가 할 수 없습니다.

분류에서Dev

JavaScript 이벤트 호출에 변수를 추가 하시겠습니까?

분류에서Dev

onclick 이벤트가있는 버튼이있는 버튼에 onclick 이벤트를 추가 하시겠습니까?

분류에서Dev

클릭 이벤트가 종료되기 전에 이미지를 추가하는 방법은 무엇입니까?

분류에서Dev

XRM을 사용하여 Javascript의 CRM 온라인 컨트롤에 클릭 이벤트를 추가하십시오.

분류에서Dev

클릭 이벤트로 DOM에 지시문 추가

분류에서Dev

JTable이 레이블의 클릭 이벤트에 벡터를 추가하지 않습니다.

분류에서Dev

이 코드에서 테이블 셀에 클릭 이벤트를 추가하는 방법은 무엇입니까?

분류에서Dev

JavaFX TableCell에 클릭 이벤트 추가

분류에서Dev

코드에 클릭 이벤트 추가

Related 관련 기사

  1. 1

    DataGridView에 셀 클릭 이벤트 핸들러를 추가 하시겠습니까?

  2. 2

    마우스 클릭에 숫자를 추가 하시겠습니까?

  3. 3

    Bing 맵의 다각형에 클릭 이벤트를 추가하고 싶습니다.

  4. 4

    kendoGridCellTemplate에 클릭 이벤트를 추가하는 방법

  5. 5

    이벤트 리스너에 "this"를 추가 하시겠습니까?

  6. 6

    jQuery를 사용하여 클릭시 클래스를 추가하고 제거 하시겠습니까?

  7. 7

    문서에서 jquery를 사용하여 클릭 이벤트 추적기를 추가 할 때 링크의 클릭 이벤트가 작동하지 않습니다.

  8. 8

    클릭시 텍스트 영역에 텍스트를 추가 하시겠습니까?

  9. 9

    WPF-여러 창에 클릭 이벤트를 추가 할 수 있습니까?

  10. 10

    jQuery를 사용하여 버튼 클릭에 번호를 추가 하시겠습니까?

  11. 11

    jQuery에서 각 클릭 이벤트에 텍스트를 x 번 추가하는 방법은 무엇입니까?

  12. 12

    div에 클래스를 추가하면 클릭 이벤트 실행-JQuery

  13. 13

    HighCharts에서 클릭 이벤트 후 시리즈를 추가하는 방법

  14. 14

    jqGrid에서 버튼 클릭 이벤트를 추가 할 수 없습니다.

  15. 15

    다른 클릭 이벤트 내에서 앵커 태그를 클릭 하시겠습니까?

  16. 16

    버튼 클릭시 게임 루프에 개체를 추가 하시겠습니까?

  17. 17

    mysql에서 링크를 추출하고 클릭 가능하게 만드시겠습니까?

  18. 18

    SwiftUI에서 전체보기에 클릭 이벤트를 추가하는 방법

  19. 19

    Tabpanel에서 ExtJS 탭에 대한 클릭 이벤트를 추가하는 방법

  20. 20

    jquery를 사용하여 복제 된 개체에 클릭 이벤트를 추가 할 수 없습니다.

  21. 21

    JavaScript 이벤트 호출에 변수를 추가 하시겠습니까?

  22. 22

    onclick 이벤트가있는 버튼이있는 버튼에 onclick 이벤트를 추가 하시겠습니까?

  23. 23

    클릭 이벤트가 종료되기 전에 이미지를 추가하는 방법은 무엇입니까?

  24. 24

    XRM을 사용하여 Javascript의 CRM 온라인 컨트롤에 클릭 이벤트를 추가하십시오.

  25. 25

    클릭 이벤트로 DOM에 지시문 추가

  26. 26

    JTable이 레이블의 클릭 이벤트에 벡터를 추가하지 않습니다.

  27. 27

    이 코드에서 테이블 셀에 클릭 이벤트를 추가하는 방법은 무엇입니까?

  28. 28

    JavaFX TableCell에 클릭 이벤트 추가

  29. 29

    코드에 클릭 이벤트 추가

뜨겁다태그

보관