awesome-repositories.com
博客
MCP
awesome-repositories.com

通过 AI 驱动的搜索,发现最优秀的开源仓库。

探索精选搜索开源替代品自托管软件博客网站地图
项目关于排名机制媒体报道MCP 服务器
法律隐私政策服务条款
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
hello-pangea avatar

hello-pangea/dnd

0
View on GitHub↗
3,973 星标·131 分支·TypeScript·6 次浏览dnd.hellopangea.com↗

Dnd

这是一个 React 拖拽库,专为构建可访问的拖拽列表和可重排序元素而设计。它提供了一个跨输入交互框架,管理跨鼠标、触摸和自定义传感器输入的事件,以创建交互式用户界面。

该库包含一个虚拟化列表管理器,通过仅处理屏幕上当前可见的元素,在处理大数据集时保持高帧率。它还支持自定义输入传感器集成,允许注册专门的输入类型来触发和控制拖拽操作。

该系统涵盖广泛的交互功能,包括自动容器滚动、基于坐标的碰撞检测以及使用门户(portals)的元素重父级化。可访问性通过键盘支持和屏幕阅读器公告集成,以传达项目移动和位置变化。

Features

  • Reorderable Lists - Provides a framework for building interactive vertical or horizontal lists in React where items can be reordered.
  • List Reordering Interfaces - Implements accessible vertical and horizontal lists where items can be manually reordered via mouse, touch, or keyboard.
  • Accessible UI Components - Provides drag-and-drop interfaces with built-in keyboard support and ARIA-compliant screen reader announcements.
  • Collision Detection - Calculates intersections of dragged element bounds with target drop zones to determine reordering positions.
  • Drag and Drop Libraries - Provides a comprehensive library for implementing accessible drag-and-drop interactions in React applications.
  • Interaction Constraint Logic - Includes logic to restrict which elements are draggable and define conditional boundaries for interactions.
  • Unified Input Abstraction Layers - Abstracts mouse, touch, and keyboard events into a unified internal trigger system for consistent drag operations.
  • Touch and Drag Interactions - Manages drag and drop interactions across mouse, touch, and custom sensor inputs through a unified framework.
  • Interaction Customizers - Supports tailoring drag behavior through the integration of specialized sensors and custom drag handles.
  • Custom Input Sensors - The library enables registering custom input types or scripted experiences to trigger and control drag operations.
  • Virtualisation Engines - Ships a virtualization engine that optimizes performance by recycling DOM elements for visible content during drag operations.
  • Virtualized List Rendering - Efficiently renders only the visible portion of large lists to maintain high frame rates.
  • UI Change Announcements - Provides real-time announcements of UI updates and state changes to screen readers for dynamic drag-and-drop content.
  • High-Performance Rendering - Optimizes the rendering of large datasets in React to maintain high frame rates during drag interactions.
  • Screen Reader Live Regions - Implements screen reader live regions to dynamically communicate item movement and position changes.
  • Virtualized List Rendering - Minimizes DOM nodes by rendering only the items currently visible in the viewport during active drag interactions.
  • Portal-Based Injection - Moves dragged items to a separate DOM layer using portals to avoid layout clipping and z-index conflicts.

Star 历史

hello-pangea/dnd 的 Star 历史图表hello-pangea/dnd 的 Star 历史图表

AI 搜索

探索更多 awesome 仓库

用简单的语言描述您的需求 —— AI 将根据相关性为您从数千个精选开源项目中进行排序。

Start searching with AI

Dnd 的开源替代方案

相似的开源项目,按与 Dnd 的功能重合度排序。
  • clauderic/dnd-kitclauderic 的头像

    clauderic/dnd-kit

    17,243在 GitHub 上查看↗

    This project is a modular toolkit for building accessible, component-based drag-and-drop interfaces in React. It provides a foundational framework for managing complex spatial interactions, state synchronization, and element registration, allowing developers to create interactive web applications that support mouse, touch, and keyboard inputs. The library distinguishes itself through a highly extensible architecture that separates input handling from interaction logic. It utilizes a sensor-based input abstraction to normalize diverse user interactions and a plugin-driven lifecycle to inject c

    TypeScriptdragdrag-and-dropdraggable
    在 GitHub 上查看↗17,243
  • bevacqua/dragulabevacqua 的头像

    bevacqua/dragula

    22,160在 GitHub 上查看↗

    Dragula is a JavaScript drag and drop library and DOM element manipulator used to move and reorder HTML elements between multiple containers. It functions as a UI interaction framework and event manager that tracks drag lifecycles to facilitate the movement of elements within a web browser interface. The library distinguishes itself through configurable constraint validation, allowing developers to define which elements are draggable and which containers are permitted drop targets. It supports specialized interaction patterns such as element cloning, the use of specific drag handles to restri

    JavaScriptcomponentdrag-and-dropdrag-drop
    在 GitHub 上查看↗22,160
  • desandro/draggabillydesandro 的头像

    desandro/draggabilly

    3,871在 GitHub 上查看↗

    Draggabilly is a JavaScript drag and drop library used to make DOM elements draggable on desktop and mobile. It serves as a coordinate-based UI tool and interaction library for tracking and setting the horizontal and vertical positions of interface elements during user interaction. The library provides a mobile-ready touch handler that converts mouse and touch movements into element translation. It includes specialized capabilities for restricting movement to specific axes or container boundaries and implements grid snapping to align elements to a predefined pixel grid. The tool manages the

    JavaScript
    在 GitHub 上查看↗3,871
  • ganlanyuan/tiny-sliderganlanyuan 的头像

    ganlanyuan/tiny-slider

    5,333在 GitHub 上查看↗

    Tiny-slider is a vanilla JavaScript carousel library used to create touch-enabled content sliders and accessible UI components without external dependencies. It functions as a responsive layout engine that adjusts slide visibility and dimensions based on viewport breakpoints. The library distinguishes itself through built-in lazy loading for images and media to improve page performance and a responsive system that automatically scales item counts and spacing according to the device screen size. It also supports nested slider instances, allowing for the creation of multi-directional scrolling

    HTMLcarouselslider
    在 GitHub 上查看↗5,333
查看 Dnd 的所有 30 个替代方案→

常见问题解答

hello-pangea/dnd 是做什么的?

这是一个 React 拖拽库,专为构建可访问的拖拽列表和可重排序元素而设计。它提供了一个跨输入交互框架,管理跨鼠标、触摸和自定义传感器输入的事件,以创建交互式用户界面。

hello-pangea/dnd 的主要功能有哪些?

hello-pangea/dnd 的主要功能包括:Reorderable Lists, List Reordering Interfaces, Accessible UI Components, Collision Detection, Drag and Drop Libraries, Interaction Constraint Logic, Unified Input Abstraction Layers, Touch and Drag Interactions。

hello-pangea/dnd 有哪些开源替代品?

hello-pangea/dnd 的开源替代品包括: clauderic/dnd-kit — This project is a modular toolkit for building accessible, component-based drag-and-drop interfaces in React. It… bevacqua/dragula — Dragula is a JavaScript drag and drop library and DOM element manipulator used to move and reorder HTML elements… desandro/draggabilly — Draggabilly is a JavaScript drag and drop library used to make DOM elements draggable on desktop and mobile. It serves… ganlanyuan/tiny-slider — Tiny-slider is a vanilla JavaScript carousel library used to create touch-enabled content sliders and accessible UI… mikke89/rmlui — RmlUi is a cross-platform UI renderer and middleware library that enables the creation of user interfaces using a… reach/reach-ui — Reach UI is an open-source library of accessible, low-level React components designed to serve as a foundation for…