Advertisement
Guest User

Untitled

a guest
Mar 22nd, 2019
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.59 KB | None | 0 0
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="utf-8">
  5. <title>Canvas: Paint</title>
  6. <script>
  7. document.addEventListener("DOMContentLoaded", () =>{
  8. const canvas = document.querySelector("canvas");
  9. const canvas2d = canvas.getContext("2d");
  10. const color_picker = document.querySelector('select[name="color"]');
  11. const line_picker = document.querySelector('select[name="line"]');
  12.  
  13. canvas2d.strokeStyle = color_picker.value;
  14. canvas2d.lineWidth = line_picker.value;
  15.  
  16. const reset = document.getElementById("button");
  17.  
  18.  
  19. let clicking = false;
  20.  
  21. canvas.addEventListener("mousedown", (event) => {
  22. clicking = true;
  23.  
  24. canvas2d.beginPath();
  25.  
  26. const canvasX = event.pageX - canvas.offsetLeft;
  27. const canvasY = event.pageY - canvas.offsetTop;
  28.  
  29. canvas2d.moveTo(canvasX,canvasY);
  30. });
  31.  
  32. canvas.addEventListener("mousemove", (event) => {
  33.  
  34. if(clicking == true){
  35. const canvasX = event.pageX - canvas.offsetLeft;
  36. const canvasY = event.pageY - canvas.offsetTop;
  37.  
  38. canvas2d.lineTo(canvasX,canvasY);
  39. canvas2d.stroke();
  40. }
  41. });
  42.  
  43. canvas.addEventListener("mouseup", () => {
  44. clicking = false;
  45.  
  46. canvas2d.closePath();
  47. });
  48.  
  49. canvas.addEventListener("mouseout", () => {
  50. clicking = false;
  51. });
  52.  
  53. color_picker.addEventListener("change", () =>{
  54. canvas2d.strokeStyle = color_picker.value;
  55. });
  56.  
  57. line_picker.addEventListener("change", () => {
  58. canvas2d.lineWidth = line_picker.value;
  59. })
  60.  
  61. reset.addEventListener("click", () => {
  62. if(confirm("Are you sure bro?")){
  63. canvas2d.clearRect(0, 0, canvas.width, canvas.height);
  64. }
  65. });
  66.  
  67. document.querySelector(".save").addEventListener("click", () => {
  68. const image = canvas.toDataURL("image/png");
  69. document.getElementById("output").innerHTML = '<img src="'+image+'" alt="">';
  70. });
  71. });
  72.  
  73. </script>
  74. <style>
  75. #wrapper{
  76. width: 845px;
  77. margin:0 auto;
  78. padding-left: 135px;
  79. outline: 1px solid blue;
  80. }
  81. #header {
  82. width: 710px;
  83. display: flex;
  84. outline: 1px solid red;
  85. }
  86.  
  87. #colorPicker {
  88. display: flex;
  89. justify-content: flex-start;
  90. }
  91.  
  92. #linePicker {
  93. display: flex;
  94. justify-content: center;
  95. }
  96.  
  97. #Clear {
  98. display: flex;
  99. justify-content: flex-end;
  100. }
  101. canvas {
  102.  
  103. border: 5px dashed #000;
  104. }
  105. </style>
  106. </head>
  107. <body>
  108. <div id="wrapper">
  109. <div id=header>
  110. <div>
  111. <label id="colorPicker">
  112. Color
  113. <select name="color">
  114. <option value="#000">Black</option>
  115. <option value="#F00">Red</option>
  116. <option value="#0F0">Light Green</option>
  117. <option value="#060">Green</option>
  118. <option value="#00F">Blue</option>
  119. <option value="#0FF">Light Blue</option>
  120. <option value="#FF0">Yellow</option>
  121. <option value="#F0F">Pink</option>
  122. </select>
  123. </label>
  124. <label id="linePicker">
  125. Line
  126. <select name="line">
  127. <option>1</option>
  128. <option>2</option>
  129. <option>3</option>
  130. <option>4</option>
  131. <option>5</option>
  132. <option>6</option>
  133. <option>7</option>
  134. <option>8</option>
  135. <option>9</option>
  136.  
  137. </select>
  138. </label>
  139. </div>
  140. <div id="Clear">
  141. <input id="button" type="reset" value="Clear"">
  142. <input type="button" class="save" value="Saves">
  143. </div>
  144. </div>
  145. <div>
  146. <canvas width="700" height="700"></canvas>
  147. </div>
  148. <div id="output"></div>
  149. </div>
  150. </body>
  151. </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement