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

基于h5+ angularjs页面拖拽实现

背景 一个朋友想做一个页面拖拽功能,我去百度一哈,找到一些资料。但是看了半天没看明白。感觉写的比较麻烦。我就反手百度h5拖放,发现h5已经提供一些拖放事件,于是自己反手写了一个。...正题 1.h5提供的拖放事件 设置元素为可拖放 首先,为了使元素可拖动,把 draggable 属性设置为 true : 拖动什么 - ondragstart...放到何处 - ondragover ondragover 事件规定在何处放置被拖动的数据。 默认地,无法将数据/元素放置到其他元素中。如果需要设置允许放置,我们必须阻止对元素的默认处理方式。...被拖数据是被拖元素的 id ("drag1") 把被拖元素追加到放置元素(目标元素)中 以上内容来源于W3school 2.整合angular 有时候不得不说前端的一些框架真的方便。...我是个动图 不足 应该发布到npm上,然后留下一个绑定初始化图片数组的口子。这样大家从npm荡下来,只需绑定自己的初始化图片数据就可以实现功能。顶多再改改样式。

1.6K20

前端10大开源拖拽排序库汇总, 让搭建,更简单

❝hi, 大家好, 我是徐小夕,之前和大家分享了很多「低代码可视化」和「前端工程化」相关的话题, 今天继续和大家分享「8」个非常流行的开源「拖拽排序」库以及「2」个非常有价值的「可视化搭建」解决方案....❞ 1. dragula 一款强大且兼容性极好的拖拽排序库, 兼容「IE7+」, 并且支持 「vanilla JavaScript / Angular / React」等框架....它提供了一个视觉效果引擎,一个拖放库(包括可排序列表),几个控件(基于「Ajax」的动态下拉列表,原地编辑,滑块)等等。...「react-beautiful-dnd」 是为垂直和水平列表专门构建的更高级别的抽象. 在该功能的子集内「react-beautiful-dnd」提供强大,自然和美丽的拖放体验....8. dnd kit 「dndkit」 可以让我们轻松构建拖放界面, 而无需在每次项目需要移动位置时都更新「dom」.

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

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

    一、HTML5 中的拖放 拖(Drag)和放(Drop)是 HTML5 标准的组成部分,了解掌握之后,举一反三,有助于提升我们在拖拽场景下技术方案的设计能力。...draggable 属性,此时长按就可以自由拖拽了: 1.2 Darg & Drop 事件 HTML 的 drag & drop 使用了“DOM Event”和从“Mouse Event”继承而来的...1.3 DataTransfer 在上述的事件类型中,不难发现,放置元素和拖动元素分别绑定了自己的事件,可如何将拖拽元素和放置元素建立联系以及传递数据?...另外目前的 API 不算多,例如我们想要定制化拖拽的图片大小、鼠标样式等,目前暂时没发现比较方便的解决方式,但是从另一个角度来说,让我们对于拖拽能力的设计和标准有了一个更深切的认识,对于设计实现拖拽交互有了一个...,可以参阅:《关于react中使用拖拽插件的评测[4]》 四、总结 由于低代码平台其实会有丰富的拖拽场景,从可扩展和兼容性上考虑,最终选择了 react-dnd 作为基础拖拽库,当然,在复杂的拖拽场景下

    5K30

    使用jQuery Draggable和Droppable实现拖拽功能

    父节点可以折叠起来 2.用户可以通过拖放的操作,将元素从左侧拖放到右侧。如果是拖的父节点元素,那么需要把它子节点的元素一并拖到右边 3.元素放到右侧,右侧可以接受元素的区域有2种可能。...一种新建一个区域,就类似“华东交通大学”所示。另外一种就是拖放到已经有元素的区域。两者的关系是“或”。单个元素区域有“非”和“且”的关系。点击右边删除按钮可以删除节点元素。...实现拖动父节点时,其下面的子节点元素也要拖放到右边。如果是拖动的子节点元素,就在右边直接显示子节点元素。...需要将元素拖到指定的区域里面,然后释放操作。...完成“放”的操作。可以从上图看出,我是将元素的上边左边和下边缘的左边存到一个数组里面。然后在“拖”的过程中,一直记录了拖动的左边,放到右侧时,就可以判断当前元素将要放的位置。具体可以下载代码查看。

    2.9K60

    【前端拖拽组件库】最强开源高性能组件库Pragmatic-drag-and-drop简介与分析

    :向屏幕阅读器用户发送消息的助手react-beautiful-dnd-migration:支持从 react-beautiful-dnd 到 Pragmatic 拖放的快速迁移三、性能/功能比较下面我们将分别从性能...我们从包大小,延迟加载特性,可访问性,增量开发,兼容性,可控性以及文件,图片,画板等多个维度和其他几个库进行了对比分析,表格如下图所示:上面详细的列出来Pragmatic-drag-and-drop在多个维度和其他库的对比...四、实操教程下面我们将根据官网的一个实例,学习使用 Pragmatic-drag-and-drop实现一些基本功能,包括可拖放、拖放目标和监视器,我们将创建一个带有可拖动棋子的棋盘,效果图如下:1.构建可拖动棋子我们第一步是允许棋子被拖动...,我们希望棋盘上的方块充当可以“放置”到的区域。...这使它们能够接收可拖放的目标数据并执行操作,而无需从组件传递状态,我们可以在棋盘的顶层放置一个监视器useEffect,并监听棋子何时落入方格中,代码如下:function Square({ pieces

    3.6K22

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

    这里介绍几个常见的使用场景: 相册应用中,用户可以拖动图片到不同的分组或标签中进行分类; 项目任务管理应用中,用户可以拖动任务卡片进行排序或分组; 文件上传功能中,用户可以将文件拖动到指定区域进行上传;...如何使用 使用拖放 API 主要包括以下 3 个步骤: 「定义可拖拽的(draggable)元素」:将需要拖动的元素标记为可拖拽,并指定相应的事件处理逻辑。...下面是一个简单的示例代码,演示了如何使用拖放 API : // 定义可拖拽的元素 const dragSource = document.getElementById("drag-source"); dragSource.addEventListener...当拖动图片时,我们使用 dragstart 事件将图片的 ID 存储在 dataTransfer 对象中。...通过这样的实现,用户可以轻松地将图片拖动到不同的相册中进行分类和管理。 3.2 项目任务管理应用 在项目任务管理应用中,用户可以通过拖动任务卡片进行排序、分组或更改任务状态。

    29820

    前端文件上传功能实现原理

    HTML5实现拖放功能 有两个核心元素拖拽元素和放置目标元素,通过这两个元素的触发事件来实现拖放功能。...另外,如果是从其他应用软件或是文件中拖东西进来,尤其是图片的时候,默认的动作是显示这个图片或是相关信息,并不是真的执行drop。此时需要用用document的ondragover事件把它直接干掉。...如果元素被放到了放置目标中,则会触发 drop 事件而不是 dragleave 事件。...FileList 对象有一个 item(index) 方法,该方法用于获取指定索引位置的文件。文件列表是从 0 开始的,所以 .item(0) 表示获取文件列表中的第一个文件。...因此,当你使用 e.target.files.item(0) 时,你实际上是在获取用户选择的文件列表中的第一个文件。

    15710

    【新手指南】App原型设计:如何快速实现这6种交互效果?

    Step 3:将2个形状组件设置为不同的颜色。 Step 4:设置交互。 a.点击按钮,将链接点拖至左边形状组件做交互。设置触发方式为点击,交互为调整尺寸并保持高度不变。...Step 3:点击空白区域推出编辑状态。 Step 4:点击演示即可预览页面滚动效果。 PS: 若想实现滚动区外悬浮效果,可以在结束编辑后将需悬浮的组件放置在滚动区外即可。...在Mockplus这款快速原型设计工具中,它为设计师直接提供了图片轮播组件,可以直接拖放到工作区中进行使用。 a. 自动轮播效果 Step 1:从左侧组件库将图片轮播组件拖至工作区内。...Step 4:编辑完成后点击滚动区外部退出,根据演示区域调整滚动区所占区域大小。 Step 5:点击演示即可预览图片轮播效果。...设计步骤 Step 1:从左侧组件库中选择面板组件拖放至工作区,具体菜单样式可自定义。 Step 2:设置交互。 a. 面板1,链接到自己,调整大小。链接到面板2,位移。链接到面板3,位移。 b.

    3.2K40

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

    ,被拖拽对象离开目标对象时触发拖动事件列表每一个可拖动的元素,在拖动过程中,都会经历三个过程,拖动开始-->拖动过程中--> 拖动结束在拖动目标上触发事件 (源元素-被拖动的元素):ondragstart...如果拖动操作不涉及拖动文件,此属性是一个空列表。dropEffect获取当前选定的拖放操作的类型或将操作设置为新类型。...setDragImage(element,x,y)该方法通过img元素来设置拖放图标element表示拖拽时鼠标下面的图片(通常是image元素,也可以说canvas元素)x、y分别指示相对于图片的横向和纵向偏移量...从拖动目标(dragstart事件触发的元素)生成半透明图像,并在拖动过程中跟随鼠标指针。这个图片是自动创建的,你不需要自己去创建它。...files属性返回被拖拽的文件列表,是一个FileList对象,有length属性,可通过下标访问。此功能可用于将文件从用户桌面拖动到浏览器。一般配合FileReader来处理文件。

    6.4K21

    Angular 结合 rxjs 实现拖拽

    页面中 video 标签,当滚动高度超过其位置之后,将其设置为可在可视区域自由拖拽。...一个不错的 Idea,如果你使用 Angular 的 @angular/cdk/drag-drop 可以轻松实现,但是我们这里不使用工具。...即元素脱离原文档布局 video 元素可以拖拽,那么其定位需要被改变为 fixed video 元素在可视区内自由拖动,那么需要对其 top, left 值进行限定 所以我们设定下面的 demo 布局:...元素拖拽 接下来就是实现 video 元素的拖拽。这里我们要监听 video 元素的三个事件,分别是鼠标按下 mousedown,鼠标移动 mousemove 和鼠标抬起 mouseup。...在移动的过程中,计算目标元素的相对可视窗口左侧和顶部的距离,将值赋予到 left 和 top。

    90810

    JavaScript进阶之实现拖拽

    注意 ball.ondragstart = function() { return false; }; 如果不设置这段代码,会发生奇怪的现象,这是因为浏览器有自己的对图片和一些其他元素的拖放处理,...会在我们拖放时自动运行,这与我们的拖放处理产生了冲突。...HTML 拖放(Drag and Drop) 拖拽事件 HTML 的 drag & drop 使用了 DOM event model 以及从mouse events 继承而来的 drag events...一个典型的drag操作是这样开始的:用户用鼠标选中一个可拖动的(draggable)元素,移动鼠标到一个可放置的(droppable)元素,然后释放鼠标。...另外,如果是从其他应用软件或是文件中拖东西进来,尤其是图片的时候,默认的动作是显示这个图片或是相关信息,并不是真的执行drop。此时需要用用document的ondragover事件把它直接干掉。

    2.7K40

    12.HTML5下一代的HTML标准介绍与初识尝试

    6.建议为元素的属性值加上双引号,其属性与属性值之间尽量少用空格。 7.建议为img元素设置 alt 属性并定义好图片尺寸。 8.应该避免一行代码过长,每行代码尽量少于 80 个字符。...ondragend : 在拖动操作末端运行的脚本。 ondragover : 当元素在有效拖放目标上正在被拖动时运行的脚本。 ondragenter : 当元素已被拖动到有效拖放区域时运行的脚本。...ondragleave : 当元素离开有效拖放目标时运行的脚本。 ondrop : 当被拖元素正在被拖放时运行的脚本(拖放)。...流程思路 设置元素为可拖放首先,为了使元素可拖动,把 draggable 属性设置为 true : 拖动什么 -> ondragstart (事件)和...放到何处 -> ondragover事件规定在何处放置被拖动的数据。 默认地,无法将数据/元素放置到其他元素中,如果需要设置允许放置,我们必须阻止对元素的默认处理方式。

    34920

    html5鼠标拖动排序及resize实现方案分析及实践

    对列表进行拖动排序,尺寸改变。之前一般会使用jQuery-UI。其通过mousedown、mousemove、mouseup这三个事件来实现页面元素被鼠标拖拽的效果。...为了使元素可拖动,必须把 draggable 属性设置为 true : test[object Object] 整个拖拽事件触发的顺序如下...,被拖拽对象离开目标对象时触发 目标对象事件: drop:源对象拖放到目标对象中,目标对象完全接受被拖拽对象时触发,可理解为在目标对象内松手时触发。...setDragImage(element,x,y) 该方法通过img元素来设置拖放图标 element表示拖拽时鼠标下面的图片(通常是image元素,也可以说canvas元素) x、y分别指示相对于图片的横向和纵向偏移量...files属性 返回被拖拽的文件列表,是一个FileList对象,有length属性,可通过下标访问。此功能可用于将文件从用户桌面拖动到浏览器。一般配合FileReader来处理文件。

    3.1K10

    界面劫持之拖放劫持

    由于用户需要用鼠标拖放完成的操作越来越多(如复制粘贴、小游戏等等),拖放劫持大大提高了点击劫持的攻击范围,将劫持模式从单纯的鼠标点击拓展到了鼠标拖放行为。...最主要的是,由于拖放操作不受浏览器“同源策略“影响,用户可以把一个域的内容拖放到另一个不同的域,由此攻击者可能通过劫持某个页面的拖放操作实现对其他页面链接的窃取,从而获得session key,token...02拖放劫持核心思路"拖放劫持"的思路是诱使用户从隐藏的不可见iframe中"拖拽"出攻击者希望得到的数据,然后放到攻击者能控制的另外一个页面中,从而窃取数据。...但是,这些 API 接口在设计时没有考虑很多的安全性问题,导致通过拖拽就可以实现跨域操作。利用拖拽技术,攻击者可以突破很多已有的安全防御措施。利用拖拽技术,攻击者可以轻易将文本注入到目标网页。...中的内容,同时将图片的alpha值设为0,让图片在原位置“消失”,给用户以为正在按住图片的错觉,当把鼠标移动至矩形区域内并松开的同时让矩阵内隐藏的图片完全显示,让用户误以为完成了拖动操作。

    23020

    低代码设计器的自由布局拖动的实现原理

    前言 大家好,我们在这篇文章中来分享一下自由布局拖动的实现原理,实现一个设计器组件自由拖动的最简demo。...,一类是拖动元素可以触发的: dragstart:鼠标点中元素并且开始移动时触发 drag:拖拽过程中持续触发 dragend:拖拽结束松开鼠标时触发 另一类是,是当拖拽元素到某个目标元素时,目标元素会触发的...: dragenter:拖拽元素到目标上时触发 dragover:拖动元素在目标元素中,持续触发 dragleave:离开目标元素时触发 drop:拖放元素到了目标元素中松开鼠标时触发 拖动放置行为 在拖动事件中...首先我们定义一下组件列表和画布区域 将画布中的组件添加mousedown事件,在事件中我们添加mousemove事件的监听,当画布中的组件进行移动时,我们实时的将该被移动元素所对应的元数据坐标进行更新。下面是代码的实现。

    4.5K30

    基于自然流布局的可视化拖拽搭建平台设计方案

    , 所以没有采用自由布局的方案) ?...笔者目前想到了两种解决方案: 将智能布局改为自由布局, 即可以采用类似 react-resizable 的这种方案 基于自然流来实现, 也就是抹去定位的概念, 完全基于元素在文档的顺序, 层级和定位的选择权交给用户...首先我们来看看一个完整的拖放过程: 首先要设置一个元素可拖放(比如) 设计拖动的时候会发生什么(需要用到ondragstart事件 和 setData(你要传递的数据..."drag" src="dooring.png" draggable="true" ondragstart="drag(event)" width="336" height="69" /> 也就是对应的我们的组件拖放区域...那么我们再回到上面说的布局问题, 比如说要想实现栅格化布局, 我们只需要定义一个flex容器, 将组件拖拽到容器里就好了, 这样也就解决了嵌套的问题.

    1.9K30
    领券