DEV Community

Cover image for DAY 4 PROJECT : DRAG & DROP
Shrishti Srivastava
Shrishti Srivastava

Posted on

DAY 4 PROJECT : DRAG & DROP

PROJECT NAME : Creating a Fun Drag and Drop Color Game Using HTML, CSS, and JavaScript

The main objective of this project is to create a game where users can drag colored boxes and drop them into designated areas. The game will include multiple colored boxes, and users can enjoy the interaction and visual appeal of dragging and dropping these elements.
This project is a fantastic way to learn and practice DOM manipulation, event handling, and styling in web development. Let's dive into the details of this fun and educational project!

Technologies Used

HTML: For structuring the web page.

Image description

CSS: For styling the game elements.

Image description

Image description

JavaScript: For adding interactivity and handling the drag-and-drop functionality.

The drag function enables drag-and-drop functionality for elements with the draggable attribute. It achieves this by handling mouse events (mousedown, mousemove, and mouseup) to update the position of the elements as they are dragged.

Image description

1) INITIAL SETUP

Image description

  • dragging: A flag to track the element currently being dragged.
  • mouseX and mouseY: Store the mouse's initial x and y coordinates when the drag starts.
  • eleX and eleY: Store the initial x and y coordinates of the element being dragged.
  • boxes: Select all elements with the draggable attribute.
  • boxes.forEach: Iterate over each draggable element and attach a mousedown event listener to initiate the drag. Also, initialize the top and left CSS properties of each element to 0.

2) STARTING THE DRAG

Image description

  • e.preventDefault(): Prevent default behavior to ensure smooth dragging.
  • dragging = this: Set the dragging variable to the element that triggered the mousedown event.
  • mouseX and mouseY: Capture the initial mouse position.
  • eleX and eleY: Capture the initial position of the element being dragged.
  • Attach mousemove and mouseup event listeners to the document to handle the drag and drop actions.

3)HANDLING THE DRAG MOVEMENT

Image description

Image description

  • deltaMouseX and deltaMouseY: Calculate the change in mouse position since the drag started.
  • Update the left and top styles of the dragging element based on the change in mouse position and the element's initial position.

4)ENDING THE DRAG

Image description

  • Set dragging to false to indicate that no element is being dragged anymore.
  • Optionally, you could remove the mousemove and mouseup event listeners here to clean up, although not strictly necessary.

5)INITIALIZE THE DRAG FUNCTION

Image description

All the drag function to set up the drag-and-drop functionality for all draggable elements.

Creating a drag and drop game using HTML, CSS, and JavaScript is an exciting way to improve your web development skills. This project covers the essentials of DOM manipulation and event handling, providing a solid foundation for more advanced projects. Give it a try, and see how creative you can get with your own variations!

THANK YOU!
HAPPY CODING!

Top comments (0)