回答編集履歴

2

コード修正

2015/08/01 17:13

投稿

hirohiro
hirohiro

スコア2068

test CHANGED
@@ -32,16 +32,6 @@
32
32
 
33
33
  ```JavaScript
34
34
 
35
- <html>
36
-
37
- <head><script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script></head>
38
-
39
- <body>
40
-
41
- <script type="text/javascript">
42
-
43
- $(document).ready(function(){
44
-
45
35
  var borderWidth = 5;
46
36
 
47
37
  var fromX;
@@ -62,6 +52,10 @@
62
52
 
63
53
  drawFlag = true;
64
54
 
55
+ fromX = e.pageX - $(this).offset().left - borderWidth;
56
+
57
+ fromY = e.pageY - $(this).offset().top - borderWidth;
58
+
65
59
  context.beginPath(); //追加
66
60
 
67
61
  context.moveTo(fromX, fromY); //追加
@@ -69,10 +63,6 @@
69
63
  context.strokeStyle = pale; //追加
70
64
 
71
65
  context.lineWidth = penWidth; //追加
72
-
73
- fromX = e.pageX - $(this).offset().left - borderWidth;
74
-
75
- fromY = e.pageY - $(this).offset().top - borderWidth;
76
66
 
77
67
  return false; // for chrome
78
68
 
@@ -140,14 +130,4 @@
140
130
 
141
131
  });
142
132
 
143
- </script>
144
-
145
-
146
-
147
- <canvas width="780" height="400"></canvas>
148
-
149
- </body>
150
-
151
- </html>
152
-
153
133
  ```

1

コード修正

2015/08/01 17:13

投稿

hirohiro
hirohiro

スコア2068

test CHANGED
@@ -23,3 +23,131 @@
23
23
  ```
24
24
 
25
25
  ※何度も同じ記述が出てきて格好は悪いですが、とりあえず動作するのではないかと思います。
26
+
27
+
28
+
29
+
30
+
31
+ 修正コードを追記します。これでどうでしょう?
32
+
33
+ ```JavaScript
34
+
35
+ <html>
36
+
37
+ <head><script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script></head>
38
+
39
+ <body>
40
+
41
+ <script type="text/javascript">
42
+
43
+ $(document).ready(function(){
44
+
45
+ var borderWidth = 5;
46
+
47
+ var fromX;
48
+
49
+ var fromY;
50
+
51
+ var drawFlag = false;
52
+
53
+ var context = $("canvas").get(0).getContext('2d');
54
+
55
+ var pale = '#ff25a8'; //色
56
+
57
+ var penWidth = 20; //太さ
58
+
59
+
60
+
61
+ $('canvas').mousedown(function(e) {
62
+
63
+ drawFlag = true;
64
+
65
+ context.beginPath(); //追加
66
+
67
+ context.moveTo(fromX, fromY); //追加
68
+
69
+ context.strokeStyle = pale; //追加
70
+
71
+ context.lineWidth = penWidth; //追加
72
+
73
+ fromX = e.pageX - $(this).offset().left - borderWidth;
74
+
75
+ fromY = e.pageY - $(this).offset().top - borderWidth;
76
+
77
+ return false; // for chrome
78
+
79
+ });
80
+
81
+
82
+
83
+ $('canvas').mousemove(function(e) {
84
+
85
+ if (drawFlag) {
86
+
87
+ draw(e);
88
+
89
+ }
90
+
91
+ });
92
+
93
+
94
+
95
+ $('canvas').on('mouseup', function() {
96
+
97
+ drawFlag = false;
98
+
99
+ context.closePath(); //追加
100
+
101
+ });
102
+
103
+
104
+
105
+ $('canvas').on('mouseleave', function() {
106
+
107
+ drawFlag = false;
108
+
109
+ context.closePath(); //追加
110
+
111
+ });
112
+
113
+
114
+
115
+ function draw(e) {
116
+
117
+ var toX = e.pageX - $('canvas').offset().left - borderWidth;
118
+
119
+ var toY = e.pageY - $('canvas').offset().top - borderWidth;
120
+
121
+ // context.strokeStyle = pale; 削除
122
+
123
+ // context.lineWidth = penWidth; 削除
124
+
125
+ // context.beginPath(); 削除
126
+
127
+ // context.moveTo(fromX, fromY); 削除
128
+
129
+ context.lineTo(toX, toY);
130
+
131
+ context.stroke();
132
+
133
+ fromX = toX; //追加
134
+
135
+ fromY = toY; //追加
136
+
137
+ // context.closePath(); 削除
138
+
139
+ }
140
+
141
+ });
142
+
143
+ </script>
144
+
145
+
146
+
147
+ <canvas width="780" height="400"></canvas>
148
+
149
+ </body>
150
+
151
+ </html>
152
+
153
+ ```