dnd kit

React 的拖放工具包
授权协议 MIT
开发语言 TypeScript HTML/CSS
所属分类 手机/移动开发、 React 开源项目
软件类型 开源软件
地区 不详
投 递 者 汤枫
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

dnd kit 是一个用于 React 的现代、轻量级、高性能、可访问和可扩展的拖放工具包,目前处于 beta 阶段。

  • 为 React 构建:公开诸如useDraggableuseDroppable之类的 hooks,并且不需要你重新构建应用程序或创建额外的包装器 DOM 节点。
  • 功能丰富:可定制的碰撞检测算法、多个激活器、可拖动覆盖、拖动手柄、自动滚动、约束等等。
  • 支持广泛的用例:列表、网格、多个容器、嵌套上下文、可变大小的项目、虚拟化列表、2D 游戏等。
  • 零依赖和模块化:库的核心重约 10kb,没有外部依赖。它围绕内置的 React 状态管理和上下文构建,从而使库保持精简。
  • 内置支持多种输入法:指针、鼠标、触摸和键盘传感器。
  • 完全可定制和可扩展:定制每个细节:动画、过渡、行为、样式。构建你自己的传感器、碰撞检测算法、自定义键绑定等等。
  • 辅助功能:键盘支持、合理的默认咏叹调属性、可定制的屏幕阅读器说明和内置实时区域。
  • 性能:它的构建考虑了性能,以支持丝般流畅的动画。
  • 预设:需要构建一个可排序的界面?Check out @dnd-kit/sortable,这是建立在@dnd-kit/core上面的 thin layer。未来会有更多预设。
  • React DnD简明教程 概述 React Dnd不同于其他的拖拽库,如果你以前没有用过它可能会被吓到。然而,一旦你了解了它设计的一些核心概念,它将变得有意义。我建议你在阅读文档其他部分之前,先阅读这些核心概念。 这些核心概念和flux/redux架构相似。这并不是巧合,因为React DnD内部就是用的Redux。 Backends(后端) React DnD是基于HTML5的拖放API搭建的

  • react-dnd 官网地址:https://react-dnd.github.io/react-dnd/docs/api/use-drop 用途:react-dnd 是一组 React 高阶组件,使用的时候只需要使用对应的 API 将目标组件进行包裹,即可实现拖动或接受拖动元素的功能。 安装: yarn add react-dnd react-dnd-html5-backend immutabi

  • 核心API 想要灵活使用,就先知道几个核心API DragSource 用于包装你需要拖动的组件,使组件能够被拖拽(make it draggable) DropTarget 用于包装接收拖拽元素的组件,使组件能够放置(dropped on it) DragDropContex 用于包装拖拽根组件,DragSource 和 DropTarget 都需要包裹在DragDropContex内 Drag

 相关资料
  • pre { white-space: pre-wrap; } 如果您能够通过您的 Web 应用简单地实现拖动和放置,您就会知道一些特别的东西。通过 jQuery EasyUI,我们在 Web 应用中可以简单地实现拖放功能。 在本教程中,我们将向您展示如何创建一个启用用户拖动和放置用户想买的商品的购物车页面。购物篮中的物品和价格将更新。 显示页面上的商品     <ul>         <li>

  • pre { white-space: pre-wrap; } 本教程向您展示如何使 HTML 元素可拖动,在本例中,我们将创建三个 DIV 元素然后启用他们的拖动和放置。 首先,我们创建三个 <div> 元素:     <div id="dd1"></div>     <div id="dd2"></div>     <div id="dd3"></div> 对于第一个 <div> 元素,我们

  • 问题内容: 嘿,我一直在阅读本教程,以了解PyQt4中的拖放方法。但是,我无法理解以下几点。如果某事能够使我更清楚,那将是很好的。 为什么会有单独的self.button.move()和e.setDropAction()self.button.move()实际不移动按钮本身吗?有人可以解释一下drag.setHotSpot和drag.start()的作用吗?谢谢。 问题答案: 该教程已严重过时。从

  • 拖放是一种非常流行的用户界面模式。它的概念很简单:点击某个对象,并按住鼠标按钮不放,将鼠标移动到另一个区域,然后释放鼠标按钮将对象“放”在这里。拖放功能也流行到了Web 上,成为了一些更传统的配置界面的一种候选方案。 拖放的基本概念很简单:创建一个绝对定位的元素,使其可以用鼠标移动。这个技术源自一种叫做“鼠标拖尾”的经典网页技巧。鼠标拖尾是一个或者多个图片在页面上跟着鼠标指针移动。 单元素鼠标拖尾

  • #div1, #div2 {float:left; width:100px; height:35px; margin:10px;padding:10px;border:1px solid #aaaaaa;} function allowDrop(ev) { ev.preventDefault(); } function drag(ev) { ev.dataTransfer.setData("Tex

  • 我在网格窗格中用两个ImageView做拖放测试。我的问题是,当我完成拖放并将目标imageview移动到源imageview并释放鼠标时,我错误地以显示“img2”中的图片而不是“img1”中的图片结束。当我注释掉“setOnDragExited”方法时,我最终得到了正确的图像“img1”,任何建议都将不胜感激。

  • 我在这里举了一个例子: http://jsfiddle.net/NQQL6/ 当我开始拖动链接时,购物车应该会变成绿色。当商品在购物车上拖动时,购物车应变为红色。 这有效,但前提是购物车是空的:| 如果其中有任何其他元素,似乎是在我将项目拖动到这些元素上时触发的。我如何防止这种情况发生? 我尝试将事件侦听器移动到元素并检查是的子级还是孙子级,但即使项目在购物车区域内,似乎也会在上随机触发,因此我的

  • 我在Windows JVM 7_25中测试了此代码,它运行良好。 当我用JVM在Linux测试相同的代码时7_25我得到了这个错误堆栈: (以及更多) < code > int incoming index = integer . parse int(drag board . getstring())的内容;为空 你能告诉我如何解决这个问题或重写代码吗?