content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>原生 JS拖拽</title> <style> * { margin: 0; padding: 0; } class="box" id="drag">
摘要这是一套最简洁、最稳定、可直接复制运行的原生JS拖拽实现,包含完整事件+样式+逻辑,不用任何框架。 要准备的核心知识点自由拖拽:用mousedown+mousemove+mouseup实现HTML5标准拖拽:用dragstartdragdragend必须设置position:absolute才能自由移动偏移量计算是不抖动的关键完整代码 DOCTYPEhtml><htmllang="zh-CN"><head><metacharset="UTF-8"><title>原生JS拖拽</title><style>.drag-box{width: --左侧:自由拖拽(边界+吸附)--><divclass="container"id="freeContainer"><divclass="drag-item"id="freeDrag">自由拖拽
可拖拽排序项3
DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>原生js拖拽效果</title
老规矩先说需求:上传文件需要拖拽上传 正常来讲一个UI库就支持了 比如antd的uploads组件 但是考虑到设计图的差异太大了,所以需要自己来实现 也是很简单的: 直接上代码吧 这个代码中包括了上传s3 DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <title>原生拖拽上传</title> <style ; width: 1050px; min-height: 300px; } </style> </head> <body>
其中,通过拖拽直接交换单元格内容是一种直观、高效的操作方式,广泛应用于课程表编排、任务看板、配置管理等场景。 本文将详细介绍如何使用 纯原生 JavaScript(无任何框架依赖) 实现一个支持单元格拖拽交换的 HTML 表格,并提供完整可运行的源代码。 一、核心设计思路本方案摒弃了复杂的 HTML5 Drag and Drop API,转而采用更可控、兼容性更强的 鼠标事件模拟拖拽 方式,主要包含以下关键组件:主表格:标准
| 单元格均可拖动;拖影层(Helper Layer):一个绝对定位的 ,作为被拖单元格的视觉副本,跟随鼠标移动;状态管理:记录当前拖拽源、原始内容、偏移量及目标单元格;视觉反馈:拖拽源高亮为淡紫色 五、结语本实现以极简代码达成直观的拖拽交换体验,体现了原生 Web 技术的强大能力。它不仅适用于教学演示,也可作为企业级应用的基础模块。 11721编辑于 2026-04-01 来自专栏前端 TS/JS 核心讲堂 原生js实现可拖拽表格其中,通过拖拽直接交换单元格内容是一种直观、高效的操作方式,广泛应用于课程表编排、任务看板、配置管理等场景。 本文将详细介绍如何使用纯原生 JavaScript(无任何框架依赖)实现一个支持单元格拖拽交换的 HTML 表格,并提供完整可运行的源代码。<! 16020编辑于 2026-03-31 来自专栏web技术开发分享 原生dom拖拽改变位置很简单的 就是一些原生操作 <! line-height: 50px; color: wheat; font-size: 30px; } </style> <body> 原生 dom拖拽移动位置拖着我走
1.5K10编辑于 2022-08-11 来自专栏大前端(横向跨端 & 纵向全栈) 原生JS实现拖拽位置预览给大家分享一个拖拽元素时添加预览的小Demo,效果如下: 以下是代码实现,欢迎大家复制粘贴及吐槽。 <! <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>原生 JS实现拖拽位置预览</title> <style> .box { position: absolute; border: 1px 6.8K10发布于 2020-11-26 来自专栏大前端(横向跨端 & 纵向全栈) 原生JS实现拖拽缩放元素今天给大家分享一个用原生JS实现的拖拽缩放元素大小的Demo,效果如下: 以下是代码实现,欢迎大家复制粘贴及吐槽。 <! <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>原生 JS实现拖拽缩放元素</title> <style> #div1 { width: 11px; height: 11px; 6.9K20发布于 2020-11-26 来自专栏大前端(横向跨端 & 纵向全栈) 原生JS实现拖拽翻书特效给大家分享一个用原生JS实现的拖拽翻书效果图,效果如下: 效果还不错吧,当然还需要两个图片。 1.书本封面。 2.书页 实现代码如下,欢迎大家复制粘贴。 <! <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>原生 JS实现拖拽翻书特效</title> <style> body, h2, p { margin: 0; height: 250px; position: absolute; left: 415px; top: 5px 10.7K10发布于 2020-11-26 来自专栏踏浪的文章 HTML5拖拽@(HTML5)[HTML 5拖拽] HTML 5 拖拽事件 图片自带拖拽功能 其他元素可设置draggable属性:draggable :true 拖拽元素(被拖拽的元素)事件 : ondragstart : 拖拽的一瞬间触发 ondrag : 拖拽前、拖拽结束之间,连续触发 ondragend : 拖拽结束触发 目标元素(拖拽元素被拖到的地方)事件 : ondragenter > drag -> dragenter -> dragover -> dragleave -> drop -> dragend 火狐下的兼容 火狐浏览器下需设置dataTransfer对象才可以拖拽除图片外的其他标签 , link, linkMove, move, all 和 uninitialized) setDragImage : 三个参数(指定的元素,坐标X,坐标Y) files: 获取外部拖拽的文件 4.4K10发布于 2019-07-31 来自专栏Web技术学苑 掌握原生拖拽,类似拖拽需求,一网打尽拖拽在业务里经常有遇见,一般都是弹框,然后我们用鼠标点击,鼠标移动,根据鼠标移动,控制弹框的位置,这也是我们业务中的拖拽,但是原生实际上已经支持了拖拽事件,最近业务有接触拖拽,今天一起去回顾总结下原生拖拽 prevent @dragover.prevent="() => {}" 2、原生处理 @dragover="handleDragOver" handleDragOver handleDragOver html5-draganddrop[2],html5-drag-drop[3] 总结 拖拽核心API,dragstart、dragend,被拖拽元素draggable: true即可拖拽 目标区域dragover : https://www.runoob.com/html/html5-draganddrop.html [3]html5-drag-drop: https://www.zhangxinxu.com/wordpress /2011/02/html5-drag-drop-拖拽与拖放简介 [4]code example: https://github.com/maicFir/lessonNote/tree/master/vue 1.2K20编辑于 2022-12-21 来自专栏eadela HTML5-拖拽float: left; } p{ background-color: orange; margin-top: 5px --在h5中,如果想拖拽元素,就必须为元素添加draggable="true". float: left; } p{ background-color: orange; margin-top: 5px --在h5中,如果想拖拽元素,就必须为元素添加draggable="true". =0.5; e.target.parentNode.style.borderWidth="5px"; obj= e.target; /*通过dataTransfer 1.2K20发布于 2019-09-29 来自专栏大前端(横向跨端 & 纵向全栈) 原生JS实现可拖拽登录框分享一个用原生JS实现的可拖拽登录框,效果如下: 实现的代码如下: <! html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>原生 z-index: 9000; top: 0px; left: 0px; border: 1px solid #D5D5D5 font-size: 16px; border-bottom: 1px solid #efefef; background: #f5f5f5 height: 40px; margin: 0px; padding: 0px; border: 1px solid #d5d5d5 5.4K20发布于 2020-11-26 来自专栏大前端(横向跨端 & 纵向全栈) 原生JS中的拖拽方法继承给大家分享一个用原生JS编写的拖拽及拖拽方法继承的 小Demo,代码如下。 <! <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>原生 JS中的拖拽方法继承</title> <style> #div1 { width: 100px; height: 100px; background: yellow; position: absolute; } </style> <script> // 定义拖拽父级对象 ; }; // 继承父级对象的原型 LimitDrag.prototype = Drag.prototype; // 修改父级对象上拖拽鼠标移动时的方法 5.6K20发布于 2020-11-26 来自专栏大前端(横向跨端 & 纵向全栈) 原生JS实现拖拽鼠标绘画分享一个用原生JS实现的拖拽鼠标绘画的小Demo,效果如下: 以下是代码实现,欢迎大家复制粘贴。 <! <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>原生 JS实现拖拽鼠标绘画</title> <style> div { width: 10px; height: 10px; border-radius: 5px; background: red; position: absolute; } </style 4.1K10发布于 2020-11-26 来自专栏sktj python pyqt5 拖拽例子 常用 -- coding: utf-8 -- ''' 【简介】 PyQt5中 Drag and Drop 例子 ''' import sys from PyQt5.QtCore import * from PyQt5.QtGui import * from PyQt5.QtWidgets import * class Combo(QComboBox): def __init__(self , self).init() self.initUI() def initUI(self): lo = QFormLayout() lo.addRow(QLabel("请把左边的文本拖拽到右边的下拉菜单中 = Combo("Button", self) lo.addRow(edit, com) self.setLayout(lo) self.setWindowTitle('简单拖拽例子 87250发布于 2019-07-05 来自专栏前端达人 手写原生代码专题 | 图片拖拽效果(一)总之练习这些基础的项目并不low,放低姿态,从最基础的原生代码开始复习实践,帮助我们梳理基础知识,日积月累,一定会有不少收获。 本系列文章小编将和大家一起从最基础的原生代码实践,做一些小的项目,从最基础的实践中复习和掌握前端的一些基础知识,只有熟练了才能理解前端的本质,学习前端新的知识和框架时就能更快的上手。 二、 图片拖拽效果介绍 本篇文章,如下视频所示,界面有5个方格拖放区域,我们可以在这些区域里拖拽图片,当鼠标拖动图片时,图片周围有灰色的粗边框效果提示用户当前元素可拖动,在可放置图片的目标方格会出现白色的虚线边框并且背景色更改为黑色 三、拖拽相关知识复习 在练习前,我们先复习下和拖拽相关的几个API事件,在某个元素被拖动时,会按照顺序触发以下事件: dragstart(按住鼠标不放,刚开始拖动元素时,就会触发 dragstart 事件 ,有了这些基础后,我们就有了写出更复杂拖拽应用的基础。 2.7K30发布于 2021-06-16 来自专栏全栈程序员必看 原生JS 实现页面元素的拖动 拖拽e_down.clientX - e_down.target.offsetLeft; var y = e_down.clientY - e_down.target.offsetTop; // 我们想要拖拽元素 6.7K30编辑于 2022-06-28 来自专栏czwy的博客 原生TabControl控件实现拖拽排序功能在UI交互中,拖拽操作是一种非常简单友好的交互。尤其是在ListBox,TabControl,ListView这类列表控件中更为常见。通常要实现拖拽排序功能的做法是自定义控件。 本文将分享一种在原生控件上设置附加属性的方式实现拖拽排序功能。 该方法的使用非常简单,仅需增加一个附加属性就行。 因此,可以通过通过拖拽事件处理拖拽的源位置以及目标位置,并获取到对应位置渲染的数据,然后操作数据集中数据的位置,从而实现数据和UI界面上的顺序更新。 ,只需一行代码实现拖拽功能。 仅支持列表控件内的元素拖拽,不支持穿梭框拖拽效果。 不支持同时拖拽多个元素。 小结 本文介绍列表拖拽操作的解决方案不算完美,功能简单但轻量,并且很好的体现了WPF的数据驱动的思想。 1.3K20编辑于 2023-10-26 |