A JavaScript library for drag-and-drop, resizing, and multi-touch gestures with inertia and snapping for modern browsers.
interact.js is a JavaScript library that enables drag-and-drop, resizing, and multi-touch gesture interactions in web applications. It solves the problem of creating smooth, native-feeling interactions with features like inertia and snapping, making complex UI behaviors easier to implement.
Frontend developers and web designers building interactive applications that require advanced drag-and-drop, resizing, or multi-touch gesture support, especially those targeting both desktop and mobile browsers.
Developers choose interact.js for its lightweight, standalone nature, excellent cross-browser compatibility including IE9+, and its ability to handle complex interactions like multi-touch and SVG elements without modifying the DOM structure.
JavaScript drag and drop, resizing and multi-touch gestures with inertia and snapping for modern browsers (and also IE9+)
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Includes inertia and snapping for realistic drag-and-drop, as shown in the example code with configurable snap-to-grid behaviors.
Handles simultaneous interactions across multiple touch points, enabling complex gesture handling for mobile web apps.
Works on desktop and mobile browsers including IE9+, ensuring broad reach without compatibility issues.
Seamlessly interacts with SVG elements, not just HTML DOM, making it ideal for data visualizations and creative tools.
As a standalone library, it requires custom code to integrate with modern frameworks like React or Vue, unlike more integrated solutions.
Focuses on low-level interaction logic, so developers must build UI components and styling from scratch, increasing development time.
Documentation is hosted on a separate site (interactjs.io), which might be less maintained or harder to navigate compared to inline docs.