Advertisement
sourav8256

Untitled

Aug 4th, 2023
55
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.97 KB | None | 0 0
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <title>Element Dragging on Canvas</title>
  7. <style>
  8. body {
  9. margin: 0;
  10. overflow: hidden;
  11. }
  12.  
  13. canvas {
  14. display: block;
  15. background-color: #f0f0f0;
  16. }
  17. </style>
  18. </head>
  19. <body>
  20. <canvas id="canvas"></canvas>
  21.  
  22. <script>
  23. const canvas = document.getElementById('canvas');
  24. const ctx = canvas.getContext('2d');
  25.  
  26. // Set canvas size to fill the screen
  27. canvas.width = window.innerWidth;
  28. canvas.height = window.innerHeight;
  29.  
  30. // Initial position of the draggable element
  31. let elementX = 50;
  32. let elementY = 50;
  33. const elementWidth = 100;
  34. const elementHeight = 50;
  35. let isDragging = false;
  36.  
  37. // Function to draw the element
  38. function drawElement() {
  39. ctx.fillStyle = 'blue';
  40. ctx.fillRect(elementX, elementY, elementWidth, elementHeight);
  41. }
  42.  
  43. // Function to check if the mouse is over the element
  44. function isMouseOverElement(x, y) {
  45. return x > elementX && x < elementX + elementWidth &&
  46. y > elementY && y < elementY + elementHeight;
  47. }
  48.  
  49. // Mouse event listeners
  50. canvas.addEventListener('mousedown', (e) => {
  51. const mouseX = e.clientX;
  52. const mouseY = e.clientY;
  53. if (isMouseOverElement(mouseX, mouseY)) {
  54. isDragging = true;
  55. }
  56. });
  57.  
  58. canvas.addEventListener('mousemove', (e) => {
  59. if (isDragging) {
  60. elementX = e.clientX - elementWidth / 2;
  61. elementY = e.clientY - elementHeight / 2;
  62. drawCanvas();
  63. }
  64. });
  65.  
  66. canvas.addEventListener('mouseup', () => {
  67. isDragging = false;
  68. });
  69.  
  70. // Function to redraw the canvas
  71. function drawCanvas() {
  72. ctx.clearRect(0, 0, canvas.width, canvas.height);
  73. drawElement();
  74. }
  75.  
  76. // Initial drawing
  77. drawCanvas();
  78. </script>
  79. </body>
  80. </html>
  81.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement