Building Draggable Components in React

As user interaction becomes more prevalent in today’s applications, sometimes it’s nice to use draggable elements in your apps. Consider website builders like Trello or Wix. They have drag-and-drop features that make it easy and convenient for users.

Hello everyone! In this article, I will show some simple ways to create draggable components in React using the react-draggable package.

Steps To Create Draggable Components In React

Follow the below-mentioned simple steps to create draggable components in React with the react-draggable package:

Step 1: Install npm package

After creating your React app with npm create-react-app my-app, run:

npm install react-draggable

Step 2: Add a Draggable Component

import Draggable from 'react-draggable'; Then wrap the element you want to be draggable in it like so: <Draggable>     <div className="box">         <div>Move me around!</div>     </div> </Draggable> We can add some CSS to the box: .box {   position: absolute;   cursor: move;   color: black;   max-width: 215px;   border-radius: 5px;   padding: 1em;   margin: auto;   user-select: none; }
Code language: JavaScript (javascript)

That’s pretty simple, isn’t it? Now, let’s just explore some properties in the draggable component that you can use to level up.

Properties in the Draggable component

Now let’s discuss some cool properties in the Draggable component that you can add to customize the dragging a little bit more.

1. Drag on one axis

The axis property is set to both by default so as seen in the above example, it allows the component to be dragged in any direction. Other values that you can set it to are:

  • axis=”x”: the component can only be dragged horizontally.
  • axis=”y”: the component can only be dragged vertically.
  • axis=”none”: the component cannot be dragged.

2. Track the position of the draggable

The onDrag event handler is triggered whenever the component is being dragged. We can use it to track the position of our component.

First, import the useState hook:

import React, { useState } from "react";
Code language: JavaScript (javascript)

Then, initialize the position state to store our position.

const [position, setPosition] = useState({ x: 0, y: 0 });
Code language: JavaScript (javascript)

Next, our ‘trackPos’ function which will update our position whenever onDrag is triggered.

const trackPos = (data) => {     setPosition({ x: data.x, y: data.y });  };
Code language: JavaScript (javascript)

And we will call this function when onDrag is triggered.

<Draggable onDrag={(e, data) => trackPos(data)}>    <div className="box">        <div>Here's my position...</div>        <div>             x: {position.x.toFixed(0)}, y: {position.y.toFixed(0)}        </div>    </div> </Draggable>
Code language: HTML, XML (xml)

3. Draggable only on handle

We can include the handle property to allow drag only on that handle. For example:

<Draggable handle="#handle">    <div className="box">       <span id="handle">Drag here</span>          <div style={{ padding: "1em" }}>Cannot drag here</div>    </div> </Draggable>
Code language: HTML, XML (xml)

Conclusion

In this article, we discussed react-draggable and how to use it to create react-draggable components. We also discussed its many properties that can remain relevant on the retractable side. Having draggable objects is useful for building interactive applications.


Posted

in

by

Recent Post

  • Generative AI for IT: Integration approaches, use cases, challenges, ROI evaluation and future outlook

    Generative AI is a game-changer in the IT sector, driving significant cost reductions and operational efficiencies. According to a BCG analysis, Generative AI (GenAI) has the potential to deliver up to 10% savings on IT spending—a transformation that is reshaping multiple facets of technology. The impact is especially profound in application development, where nearly 75% […]

  • Generative AI in Manufacturing: Integration approaches, use cases and future outlook

    Generative AI is reshaping manufacturing by providing advanced solutions to longstanding challenges in the industry. With its ability to streamline production, optimize resource allocation, and enhance quality control, GenAI offers manufacturers new levels of operational efficiency and innovation. Unlike traditional automation, which primarily focuses on repetitive tasks, GenAI enables more dynamic and data-driven decision-making processes, […]

  • Generative AI in Healthcare: Integration, use cases, challenges, ROI, and future outlook

    Generative AI (GenAI) is revolutionizing the healthcare industry, enabling enhanced patient care, operational efficiency, and advanced decision-making. From automating administrative workflows to assisting in clinical diagnoses, GenAI is reshaping how healthcare providers, payers, and technology firms deliver services. A Q1 2024 survey of 100 US healthcare leaders revealed that over 70% have already implemented or […]

  • Generative AI in Hospitality: Integration, Use Cases, Challenges, and Future Outlook

    Generative AI is revolutionizing the hospitality industry, redefining guest experiences, and streamlining operations with intelligent automation. According to market research, the generative AI market in the hospitality sector was valued at USD 16.3 billion in 2023 and is projected to skyrocket to USD 439 billion by 2033, reflecting an impressive CAGR of 40.2% from 2024 […]

  • Generative AI for Contract Management: Overview, Use Cases, Implementation Strategies, and Future Trends

    Effective contract management is a cornerstone of business success, ensuring compliance, operational efficiency, and seamless negotiations. Yet, managing complex agreements across departments often proves daunting, particularly for large organizations. The TalkTo Application, a generative AI-powered platform, redefines contract management by automating and optimizing critical processes, enabling businesses to reduce operational friction and improve financial outcomes. […]

  • Generative AI in customer service: Integration approaches, use cases, best practices, and future outlook

    Introduction The rise of generative AI is revolutionizing customer service, heralding a new era of intelligent, responsive, and personalized customer interactions. As businesses strive to meet evolving customer expectations, these advanced technologies are becoming indispensable for creating dynamic and meaningful engagement. But what does this shift mean for the future of customer relationships? Generative AI […]

Click to Copy