首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

原生JS快速实现拖放drag and drop)效果

拖放是很常见的一种交互效果,很多时候我们都会借助于第三方的控件来实现,其实用原生js实现起来也非常的方便。...接下来我们就用原生js和css快速实现这样的拖放效果: HTML HTML的内容很简单,就是五个空的容器和一个可以被拖拽的元素: html: <div class="droppable...图片来源于https://source.unsplash.com/的随机图片;2. .dragging为draggable元素正在被拖动的状态,增加黄色border;3. .<em>drag</em>-over为draggable...<em>JS</em> 最后,我们需要通过<em>js</em>监听draggable和droppable的相关的事件。...在dragDrop<em>方法</em>中直接使用append<em>方法</em>将draggable元素移动至当前容器下面。 好了,demo比较简单,但是细节还是有一些的,自己实践一下才能更深刻的领悟。

3.4K40
您找到你想要的搜索结果了吗?
是的
没有找到

JavaScript 学习-50.实现页面菜单拖放Drag 和 Drop)

前言 拖放是一种常见的操作,即抓取对象以后从一个位置拖到另一个位置。 在 HTML5 中,拖放是标准的一部分,任何元素都能够拖放。...拖放Drag 和 Drop) 在拖曳操作中,被拖曳的元素称做源对象,是指页面中设置了draggable=”true”属性的元素;源对象进入的元素称作目标元素,目标元素可以是页面的任一元素。...dataTransfer.setData() 方法设置被拖动数据的数据类型和值: function drag(ev) { ev.dataTransfer.setData("text", ev.target.id...为了实现拖放,我们必须阻止元素的这种默认的处理方式。...该方法将返回在 setData() 方法中设置为相同类型的任何数据 被拖数据是被拖元素的 id (“drag1”) 把被拖元素追加到放置元素中 使用示例 一个完整的拖曳效果是由拖曳(Drag)和释放(Drop

94320

JS】1724- 重学 JavaScript API - Drag and Drop API

这个 API 提供了一系列的事件和方法,使我们能够轻松地处理拖放操作。 1.2 作用和使用场景 拖放 API 作用在于使网页具备拖放功能,为用户提供更直观、灵活的交互体验。...当拖动 drag-source 元素时,使用 event.dataTransfer.setData() 方法设置了拖动数据,而放置目标元素时,执行 drop事件监听的回调方法,实现被拖动的元素添加到可放置元素底下...提供了丰富的事件和方法,使开发者可以自定义拖放行为。 缺点: 在某些较旧的浏览器中可能存在兼容性问题。 拖放操作可能受到设备的限制,如移动设备上的触摸操作。...Vue.Draggable[10]: 18.9k⭐, Vue.js拖放组件,提供了易用的拖放功能。...Vue component (Vue.js 2.0) or directive (Vue.js 1.0) allowing drag-and-drop and synchronization with

18320

H5拖放原生js将图片拖放另外一个元素里

按下鼠标键并开始移动鼠标时,会在被拖放的元素上触发dragstart事件。 触发dragstart事件后,随即会触发drag事件,而且在元素被拖动期间会持续发送该事件。...因为它是事件对象的属性,所以只能在拖放事件的事件处理程序中访问dataTransfer对象。 dataTransfer对象有两个主要方法: getData()和setData()。...6:简单拖放常用事件与方法 ondragstart ondragover ondrop dataTransfer.getData( )/setData( ) event.preventDefault(...我们还可以通过监听信息的function得出图片对象的一些方法,在图片拖放事件ondrop开始的function里面执行此方法就可以监听: function show(event) { //监听图片信息...完整的js应该是这样的: var d1, img, d2, msg; window.onload = function () { d1 = document.getElementById

2K30

nw.js如何处理拖放操作

nw.js如何处理拖放操作 其实拖放drag-drop)操作是Html5的功能,不是nw.js的内置API,那么我们采用Html5应用一般的处理方法就可以了。...首先我们看一下一个正常的页面,直接拖放一个文件过来的效果。...nw.js会按照chrome浏览器默认处理文件的方式来处理拖放的文件,能显示的会直接显示,不能显示的会变成资源下载。 这肯定不是桌面应用想要的效果,那么Html5是如何处理拖放的呢?...1.1 如何禁用拖放操作 在Html元素上,我们可以通过ondragover和ondrop两个事件来处理文件拖放,那么和阻止其他事件行为的方法一样,我们只需要进行监听并阻止冒泡就可以了。...我们新建了一个div来处理文件拖放

2.9K50

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

简介 最近在研究用 React 绘制拓扑图的时候涉及到了 HTML5 拖放 API,了解到了 React DnD 这个拖放神器。...spec: 一个js对象,上面定义了一些方法,用来描述 drag source 如何对拖动事件进行响应。 方法中的参数解释: props:当前组件的 props 参数。...当拖拽开始的时候,这个方法就会被调用,这个方法必须要返回一个js 对象来描述被拖拽的元素,比如返回一个 { id: props.id },通过monitor.getItem() 方法可以获取到返回结果。...spec: 一个js对象,上面定义了一些方法,描述了拖放目标对拖放事件的反应。 方法中的参数解释: props:当前组件的 props 参数。...如果这个方法返回的是一个js对象,在 drag source 的 endDrag 方法里面,调用 monitor.getDropResult() 可以获得返回结果。

1.4K20

HTML5 进阶系列:拖放 API 实现拖放排序

前言 HTML5 中提供了直接拖放的 API,极大的方便我们实现拖放效果,不需要去写一大堆的 js,只需要通过监听元素的拖放事件就能实现各种拖放功能。...源对象: dragstart:源对象开始拖放drag:源对象拖放过程中。 dragend:源对象拖放结束。 过程对象: dragenter:源对象开始进入过程对象范围内。...接下来认识一下这个对象的方法和属性,来了解它是如何传递数据的。 setData() 该方法向 dataTransfer 对象中存入数据。...例如: event.dataTransfer.clearData(); setDragImage() 该方法通过用img元素来设置拖放图标。... var iosDragDropShim = { enableEnterLeave: true } <script src="vendor/ios-<em>drag</em>-drop.<em>js</em>

1.9K70

drag事件详解:html5鼠标拖动排序及resize实现方案分析及实践

而HTML5中直接提供了拖放的API,只要通过监听元素的拖放事件就能实现各种拖放功能。拖放API阐释拖放Drag和 drop)是 HTML5 标准的组成部分。...源对象事件: dragstart:源对象开始拖放,开始移动时事件触发 drag:源对象拖放过程中,移动被拖拽对象时触发 dragend:源对象拖放结束,整个拖放操作结束时触发。...该属性用于保存拖放的数据和交互信息,返回DataTransfer对象。DataTransfer对象定义的属性和方法有很多种,我们看下列入标准的几个。属性说明types只读属性。...setDragImage(element,x,y)该方法通过img元素来设置拖放图标element表示拖拽时鼠标下面的图片(通常是image元素,也可以说canvas元素)x、y分别指示相对于图片的横向和纵向偏移量...这种一般都是使用第三方库实现,如  interact.js 、vue-drag-resize等。

6K21

HTML5 进阶系列:拖放 API 实现拖放排序

前言 HTML5 中提供了直接拖放的 API,极大的方便我们实现拖放效果,不需要去写一大堆的 js,只需要通过监听元素的拖放事件就能实现各种拖放功能。...源对象: dragstart:源对象开始拖放drag:源对象拖放过程中。 dragend:源对象拖放结束。 过程对象: dragenter:源对象开始进入过程对象范围内。...接下来认识一下这个对象的方法和属性,来了解它是如何传递数据的。 setData() 该方法向 dataTransfer 对象中存入数据。...例如: event.dataTransfer.clearData(); setDragImage() 该方法通过用img元素来设置拖放图标。... var iosDragDropShim = { enableEnterLeave: true } <script src="vendor/ios-<em>drag</em>-drop.<em>js</em>

1.5K10

HTML5 拖放API与Vue.js实战

拖放 API 将可拖动元素添加到 HTML,使我们可以构建包含可以拖动的具有丰富 UI 元素的 Web 应用。 在本文中我们将用 Vue.js 构建一个简单的看板应用。...,将会在启用拖放的元素上触发以下事件: Dragenter:当一个元素被拖动到启用拖放的元素上时触发一次Dragover:只要元素仍然位于启用了 drop 的元素上,就会连续触发Drop:在把拖动的元素拖放到启用了拖放的元素上之后触发...card.addEventListener('dragend', this.handleDragEnd); }, }, 在上面,我们创建了一个 setDraggable 方法来使卡片组件可拖动...所以需要在 handleDragStart 方法中添加数据。 设置数据时要用到的重要信息是格式,可以是字符串。在我们的例子中,它被设置为 text/x-kanban-card。...总结 在本文中,我们介绍了什么是 HTML 5 拖放 API ,如何使用,以及如何在 Vue.js 中实现。 拖放功能也可以在其他前端框架和原生 JavaScript 中使用。

4.2K10

dragula插件web端和移动端的拖拽排序

Dragula简介 Dragula是一款支持移动触摸屏设备的纯js元素拖放插件。这个元素拖放插件使用简单,浏览器兼容性好,能够实现通过鼠标或在移动设备中通过手指来拖动DOM元素的位置。...npm install dragula –save bower install dragula.js –save 使用方法 该元素拖动插件提供了一个最简单的API来让你可以在页面中拖放元素。...注意下面的区别: 1. drag 元素从source中隐藏 Nothing happens 2. drop 元素将移动到target中 元素会被克隆到target中 3. remove 元素会从DOM...9. drake.cancel(revert):如果被drake管理的元素是当前被拖放的元素,这个方法会取消拖放事件。...10. drake.remove( ):如果被drake管理的元素是当前被拖放的元素,该方法会将元素从DOM中移除。 11. drake.on (Events):drake是一个事件发送器。

2.2K10
领券