본문 바로가기

개발이야기/Html&CSS

마우스로 이미지 그리기 (canvas, drag, drop, css, html 코드)

728x90

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

<!DOCTYPE html>

<html>

<head>

    <meta charset="UTF-8">

    <title>마우스 드래깅으로 캔버스에 그림 그리기</title></head>

<body onload="init()">

<h3>마우스를 누른 채 드래깅하여 그림 그려 보세요</h3>

<hr>

<canvas id="FRESH" style="background-color:aliceblue" width="400" height="300">

</canvas>

<script>

    var canvas, context;

    function init() {

        canvas = document.getElementById("FRESH");

        context = canvas.getContext("2d");

 

        context.lineWidth = 2// 선 굵기를 2로 설정

        context.strokeStyle = "#FF007F";

 

        // 마우스 리스너 등록. e는 MouseEvent 객체

        canvas.addEventListener("mousemove"function (e) { move(e) }, false);

        canvas.addEventListener("mousedown"function (e) { down(e) }, false);

        canvas.addEventListener("mouseup"function (e) { up(e) }, false);

        canvas.addEventListener("mouseout"function (e) { out(e) }, false);

    }

 

    var startX=0, startY=0// 드래깅동안, 처음 마우스가 눌러진 좌표

    var drawing=false;

    function draw(curX, curY) {

        context.beginPath();

        context.moveTo(startX, startY);

        context.lineTo(curX, curY);

        context.stroke();

    }

    function down(e) {

        startX = e.offsetX; startY = e.offsetY;

        drawing = true;

    }

    function up(e) { drawing = false; }

    function move(e) {

        if(!drawing) return// 마우스가 눌러지지 않았으면 리턴

        var curX = e.offsetX, curY = e.offsetY;

        draw(curX, curY);

        startX = curX; startY = curY;

    }

    function out(e) { drawing = false; }

</script>

</body>

</html>

Colored by Color Scripter

cs

 

따로 설명은 없습니다. 궁금한 내용은 댓글 달아 주시면 답변 드리겠습니다