main.js 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. let canvas = document.getElementById("canvas")
  2. canvas.height = window.innerHeight
  3. canvas.width = window.innerWidth
  4. let ctx = canvas.getContext("2d")
  5. ctx.lineWidth = 5
  6. let prevX = null
  7. let prevY = null
  8. let draw = false
  9. let clrs = document.querySelectorAll(".clr")
  10. clrs = Array.from(clrs)
  11. clrs.forEach(clr => {
  12. clr.addEventListener("click", () => {
  13. ctx.strokeStyle = clr.dataset.clr
  14. })
  15. })
  16. let clearBtn = document.querySelector(".clear")
  17. clearBtn.addEventListener("click", () => {
  18. ctx.clearRect(0, 0, canvas.width, canvas.height)
  19. })
  20. let saveBtn = document.querySelector(".save")
  21. saveBtn.addEventListener("click", () => {
  22. let data = canvas.toDataURL("imag/png")
  23. let a = document.createElement("a")
  24. a.href = data
  25. a.download = "sketch.png"
  26. a.click()
  27. })
  28. window.addEventListener("mousedown", (e) => draw = true)
  29. window.addEventListener("mouseup", (e) => draw = false)
  30. window.addEventListener("mousemove", function(e){
  31. if(prevX == null || prevY == null || !draw){
  32. prevX = e.clientX
  33. prevY = e.clientY
  34. return
  35. }
  36. let mouseX = e.clientX
  37. let mouseY = e.clientY
  38. ctx.beginPath()
  39. ctx.moveTo(prevX, prevY)
  40. ctx.lineTo(mouseX, mouseY)
  41. ctx.stroke()
  42. prevX = e.clientX
  43. prevY = e.clientY
  44. })