首页
学习
活动
专区
圈层
工具
发布

使用React DnD实现列表拖拽排序

主要实现以下功能: 鼠标hover到【列表项】,显示可【拖动图标】; 抓取【拖动图标】并拖动,【列表项】跟随鼠标; 拖动过程【其他列表项】自行挪动; 拖动到目标位置,释放鼠标,完成排序; 由于项目使用...安装 React DnD # Using npm npm i -s react-dnd react-dnd-html5-backend # Using yarn yarn add react-dnd...React DnD 核心 API DragSource:用于包装需要拖动的组件,使组件能够被拖拽(make it draggable)。...DropTarget:用于包装接收拖拽元素的组件,使组件能够放置(dropped on it)。...详细用法请参考 React DnD 文档 或 react-dnd 用法详解 实现列表拖拽排序 components/DndList.js import React, { useState } from

10.8K41

拖拽神器React DnD你真的了解了吗?

React DnD 帮我们封装了一系列的拖放 API,大大简化了拖放 API 的使用方式,今天就结合下面这个示例给大家介绍下 React DnD 的用法。...通过它可以获取当前的拖拽信息,比如可以获取当前被拖拽的项目及其类型,当前和初始坐标和偏移,以及它是否已被删除。 component:是组件的实例。...通过它可以获取当前的拖拽信息,比如可以获取当前被拖拽的项目及其类型,当前和初始坐标和偏移,以及它是否已被删除。 component:是组件的实例。...HTML5 DnD API 兼容性不怎么样,并且不适用于移动端,所以干脆把 DnD 相关具体DOM事件抽离出去,单独作为一层,即 Backend,我们可以根据 React DnD提供的约定协议定义自己的...,这里可以用来设置拖拽时容器的背景色。

2.6K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    可拖拽gridview

    的控件,GridView主要是来显示网格的控件,在Android的开发中使用很普通,相对于TextView,Button这些控件来说要来的复杂些,今天给大家带来长按GridView的item,然后将其拖拽其他...GridView的拖动的Demo,但是大部分都是相同的,而且存在一些Bug,而且大部分都是点击GridView的item然后进行拖动,或者item之间不进行实时交换,今天给大家更加详细的介绍GridView拖拽...镜像到屏幕上面,触发GridView向下滚动 GridView交换数据,刷新界面,移除item的镜像 看完上面的这些思路你是不是找到了些感觉了呢,心里痒痒的想动手试试吧,好吧,接下来就带大家根据思路来实现可拖拽的...item显示出来,这样子就实现了GirdView的拖拽效果啦,接下来我们来使用下我们自定义可拖拽的GridView吧,先看主界面布局,只有我们自定义的一个DragGridView 拖拽也不是那么难实现呢?

    5.8K50

    这几个拖拽库真心推荐

    Vue.Draggable是一个基于Vue.js的可拖拽组件库,用于实现拖拽和排序功能。...它提供了Vue指令和组件,可以轻松地将拖拽功能集成到Vue应用程序中。内置丰富的配置选项和事件钩子,可以满足不同的需求,同时提供了良好的性能和可访问性。...它可以用于各种应用场景,包括可重排序的列表、棋牌游戏的拖拽和放置等。Sortable提供了丰富的API和配置选项,可以进行自定义布局、样式和交互行为的调整。...它支持将元素拖拽到不同的容器,并提供了可自定义的拖拽事件和处理程序。dragula非常易于集成和使用,适用于一般的拖拽需求。...Github链接:https://github.com/bevacqua/dragula Github Star:21.6K React DnD React DnD是专为React框架设计的拖拽和放置(

    3.3K20

    Jquery实现可拖拽的树菜单「建议收藏」

    server”>         Jquery 可拖拽树...            var isDrageToRoot = false;  //是否拖拽至顶级节点             //1.树Html初始化             var InitTreeHtml...= “treeDemo”) {                     //为顶级文件夹拖拽至顶级不显示样式,【即顶级不能再拖拽至顶级】                     $(rootUlId)....$(“#zTreeMask_” + currentDrageNodeId).append($($currentAId).clone());                         //推断当前拖拽的节点为展开目录则先把目录收缩再拖拽...不然鼠标移上节点又显示原来拖拽时的样式 【移动后(移除)再移上鼠标不能显示样式bug NOTDO】                     $(“a”).unbind(“mouseover”).unbind

    5.3K30

    前端里的拖拖拽拽了解一下?

    最近在项目中使用了 react-dnd[1],一个基于 HTML5 的拖拽库,“拖拽能力”丰富了前端的交互方式,基于拖拽能力,会扩展各种各样的拖拽反馈效果,因此有必要学习了解,最好的学习方式就是实操!...一个典型的拖拽操作: 用户选中一个可拖拽的(draggable)元素,并将其拖拽(鼠标按住不放)至一个可放置的(droppable)元素上,然后松开鼠标。...dragleaveondragleave当拖动元素离开一个可释放目标元素放置dragoverondragover当元素被拖到一个可释放目标元素上时(100 ms/次)放置dropondrop当拖动元素在可释放目标元素上释放时放置...三、已有拖拽库 目前主流的拖拽库有: react-dnd: https://github.com/react-dnd/react-dnd/ react-beautiful-dnd: https://github.com...,从可扩展和兼容性上考虑,最终选择了 react-dnd 作为基础拖拽库,当然,在复杂的拖拽场景下,是需要自行扩展该拖拽库,上手难度相对会高一点,不过有了这些“拖拽知识”作为前置基础,那么扩展功能也就不是什么难事了

    6.6K30

    Android笔记: 使用RecyclerView打造可拖拽的GridView

    如果我们设置了非0的dragFlags ,那么当我们长按item的时候就会进入拖拽并在拖拽过程中不断回调onMove()方法,我们就在这个方法里获取当前拖拽的item和已经被拖拽到所处位置的item的ViewHolder...到这里,已经可以拖拽了,但是拖拽的时候我们拖拽的对象不能高亮显示,这是不友好的,我们希望拖拽的Item在拖拽的过程中背景颜色加深,这样就需要继续重写下面两个方法: //当长按选中item的时候(...super.clearView(recyclerView, viewHolder); viewHolder.itemView.setBackgroundColor(0); } OK,这样就完成了一个可拖拽的...更加复杂的需求 上面的代码完成了基本功能,但实际的产品需要往往可能会有些不一样,比如说,产品希望,有一些item可以拖拽,一些item无法拖拽,就如上图的“更多”是无法拖拽的。这个咋办呢?...详见demo 开始拖拽时震动 支付宝的拖拽网格在长按后开始拖拽时会有一次短时间的震动提示用户开始拖拽了,很友好的交互,我们也加一个: 添加权限: <uses-permission android:name

    2.7K31
    领券