dragmove

http://www.blueidea.com/tech/web/2006/3791_5.asp

 

 

 

document.onmousemove = mouseMove;
document.onmouseup   = mouseUp;

var dragObject  = null;
var mouseOffset = null;

function getMouseOffset(target, ev){
 ev = ev || window.event;

 var docPos    = getPosition(target);
 var mousePos  = mouseCoords(ev);
 return {x:mousePos.x - docPos.x, y:mousePos.y - docPos.y};
}

function getPosition(e){
 var left = 0;
 var top  = 0;

 while (e.offsetParent){
  left += e.offsetLeft;
  top  += e.offsetTop;
  e     = e.offsetParent;
 }

 left += e.offsetLeft;
 top  += e.offsetTop;

//return {
 // x:ev.clientX + document.body.scrollLeft - document.body.clientLeft,
 // y:ev.clientY + document.body.scrollTop  - document.body.clientTop
// };

 return {x:left, y:top};
}

function mouseMove(ev){
 ev           = ev || window.event;
 var mousePos = mouseCoords(ev);

 if(dragObject){
  dragObject.style.position = 'absolute';
  dragObject.style.top      = mousePos.y - mouseOffset.y;
  dragObject.style.left     = mousePos.x - mouseOffset.x;

  return false;
 }
}
function mouseUp(){
 dragObject = null;
}

function makeDraggable(item){
 if(!item) return;
 item.onmousedown = function(ev){
  dragObject  = this;
  mouseOffset = getMouseOffset(this, ev);
  return false;
 }
}

 

 

 

var targWidth  = parseInt(curTarget.offsetWidth);
  var targHeight = parseInt(curTarget.offsetHeight);

 

 

setAttribute('startWidth',  parseInt(offsetWidth));
      setAttribute('startHeight', parseInt(offsetHeight));
      setAttribute('startLeft',   pos.x);
      setAttribute('startTop',    pos.y);

(getAttribute('startTop')

 

 

 

<script language="javascript">
  var currentObj=null;
  var offleft;
  var offtop;
  function funMup()
  {
   currentObj=null;
  }
  function funMdown(obj)
  {
   currentObj=obj;
   offleft=event.x-obj.style.pixelLeft;
   offtop=event.y-obj.style.pixelTop;
   
   
  }
  document.onmouseup=funMup;
  
  function funMove()
  {
   if(currentObj!=null)
   {
    //alert()
    currentObj.style.top=event.y-offtop;
    currentObj.style.left=event.x-offleft;
    //currentObj.style.pixelTop=event.y-offtop;
    //currentObj.style.pixelLeft=event.x-offleft;
   }
  }
  document.onmousemove=funMove;
  function dd()
  {
   if(currentObj!=null)
   {
    //alert()
    currentObj.style.top=event.y-offtop;
    currentObj.style.left=event.x-offleft;
    //currentObj.style.pixelTop=event.y-offtop;
    //currentObj.style.pixelLeft=event.x-offleft;
    
   }
   
  }
  function funclick()
  {
   var bb=testfun();
   alert(bb.x);
  
  }
  function testfun()
  {
   return{x:00,y:11};
  }
  function cl()
  {
   alert( document.body.clientTop);
   alert(event.clientX);
   alert(event.srcElement.id);
  }
  function ma()
  {
   alert(arguments.length);
  }
  
  </script>

dragmove.js:一个超小的Javascript库,使DOM元素可拖动和移动。 约500个字节,没有依赖关系 dragmove.js 一个超小的Javascript库,使DOM元素可拖动和移动。 具有触摸屏支持。 零依赖性和500字节压缩。 。 用法 节点 npm install @knadh/dragmove import { dragmove } from @ knadh / dragmove ; // (target, handler, onStart(target, x, y), onEnd(target, x, y)). // onStart and onEnd are optional callbacks that receive target element, and x, y coordinates. dragmove ( document . querySelector ( "#box" ) , document . querySelector ( "#box .drag-h 立即下载

相关推荐

js-div-dragmove

该代码帮助你实现根据事先拖动的div轨迹,设置一个时间执行长度,可以安轨迹自动帮你执行完成

html5拖动监听

在拖动目标上触发事件 (源元素): ondragstart - 用户开始拖动元素时触发 ondrag - 元素正在拖动时触发 ondragend - 用户完成元素拖动后触发 释放目标时触发的事件: ondragenter - 当被鼠标拖动的对象进入其容器范围内时触发此事件 ondragover - 当某被...

weixin_30537391的博客 1121

unstickify.js:使网页上的所有元素都可拖动的简单脚本

unstickify.js 它是什么? unstickify.js 是一个简单的脚本,它使网页上的所有元素都可以拖动! 安装 要使用 unstickify.js,只需将文件复制到您选择的目录中,然后将其加载到您要修改的 html 文件的底部。 例子 使用 unstickify.js 的网站 #IRC ##jesseh, #jimbus on irc.freenode.net

推荐开源项目:dragmove.js —— 轻量级的拖拽库

`dragmove.js` 是一个极其小巧的JavaScript库,专为实现DOM元素的拖动和移动而设计。它支持触摸屏操作,并且没有任何依赖,压缩后仅500字节。只需简单的几行代码,你就能将你的网页元素变得可拖动,这使得UI交互变得更加直观与便捷。[在线演示](https://knadh.github.io/dragmove.js/docs/)可以让你立即体验其功能。 ## 2、项目技术分析 ...

gitblog_00058的博客 972

Uibot RPA中级认证实战:手把手教你用流程创造者搞定客户数据迁移(附验证码容错技巧)

本文详细介绍了Uibot RPA中级认证实战中的客户数据迁移工程化解决方案,特别针对验证码容错技巧和动态表格处理等核心挑战。通过环境准备、登录模块设计、数据提取技术及容错体系的系统讲解,帮助RPA实施工程师掌握高效稳定的自动化流程开发方法,提升企业数据迁移效率。

weixin_30505225的博客 228

SAP S4 HANA 新资产会计中的平行分类账估值

在资产会计中,我们可以设置使用折旧区域的平行分类账会计 我们需要根据涉及的会计原则定义折旧区域,在我们的方案中,公司 FR01 是一家国际集团的当地分支机构,公司 FR01 需要按照集团会计准则 IFRS 和当地 GAAP 会计准则报告财务报表。过账到 LG 会计原则(分类帐 2L)-->分类账 2L的 150 欧元损失 -->在 IFRS 折旧区域,我们有 100 欧元的收益,在 LG 折旧区域,我们有 150 欧元的损失,使用平行分类账 0L 和 2L,我们能够根据不同的会计原则进行平行估值。

yanzibing99的博客 1328

JS拖拽事件

拖拽事件分为: - dataTransfer 对象:退拽对象用来传递的媒介,使用一般为Event.dataTransfer。- draggable 属性:就是标签元素要设置draggable=true,否则不会有效果,例如:列表1- ondragstart 事件:当拖拽元素开始被拖拽的时候触发的事件,此事件作用在被拖曳元素上- ondragmove事件:当拖拽元素在拖拽中触发的事件,此事件作

qq_32550037的博客 3945

14、OpenClaw(龙虾助手)Skill 开发完整规范(2026最新版)

OpenClaw Skill 开发指南摘要: Skill 是 OpenClaw AI 助手的核心扩展机制,支持声明式(SKILL.md)和原生代码(JS/TS/Python)两种开发模式。声明式 Skill 通过 Markdown 定义触发条件和执行流程,适合简单业务;原生代码 Skill 提供完整编程能力,适合复杂场景。开发需遵循标准化项目结构,包含 SKILL.md(元数据)、manifest.json(权限声明)等文件,并严格处理错误和多系统适配。新版要求原生 Skill 必须声明文件、网络等权限,确

欢迎光临~知1而N的博客 1237

3.Unity经验:三维物体的拖拽和移动

Drag using System.Collections; using System.Collections.Generic; using UnityEngine; public class Drag : MonoBehaviour { private Transform _trans;// 目标物体的空间变换组件 private Vector3 _vec3TargetS...

知识无止境 3040

45个经典Linux面试题(非常详细)零基础入门到精通,收藏这一篇就够了

(文件系统分配其中的一些磁盘块用来记录它自身的一些数据,如 i 节点,磁盘分布图,间接块,超级块等。$ chmod 751 file 给 file 的属主分配读、写、执行(7)的权限,给 file 的所在组分配读、执行(5)的权限,给其他用户分配执行(1)的权限。linux命令’hash’管理着一个内置的哈希表,记录了已执行过的命令的完整路径, 用该命令可以打印出你所使用过的命令以及执行的次数。创建文件:典型的如 touch,vi 也可以创建文件,其实只要向一个不存在的文件输出,都会创建文件。

小陈的博客 2070

如何让C++程序生成dump文件?生成dump文件的方式有哪些?如何使用Windbg分析dump文件?

本文详细介绍了如何让C++程序生成dump文件、生成dump文件的多种方式以及如何使用Windbg分析dump文件,并给出了对应的实战分析案例,有一定的实战参考价值。

dvlinker的技术专栏 5万+

dragmove.js 使用教程

dragmove.js 是一个极其小巧的 JavaScript 库,专为实现 DOM 元素的拖动和移动而设计。它支持触摸屏操作,并且没有任何依赖,压缩后仅 500 字节。只需简单的几行代码,你就能将你的网页元素变得可拖动,这使得 UI 交互变得更加直观与便捷。 ## 项目快速启动 要开始使用 dragmove.js,首先需要通过 npm 安装它: ```bash npm install @kn...

gitblog_00826的博客 393

VTK API 详解(134):vtkOBJWriter - 写入 OBJ 模型

是 VTK 中用于将数据写入 Wavefront OBJ 文件格式的类。OBJ 格式是广泛支持的 3D 网格模型格式,支持顶点、面和基本几何信息的保存,便于模型在多种三维软件间交换。

yumeiguo的博客 140

Window.DragMove 方法

Window.DragMove 方法 Window.DragMove 方法 ①允许使用在窗口工作区的暴露区域上方按下其鼠标左键的鼠标来拖动窗口。 ②调用 DragMove 时必须按下鼠标左键。 检测何时按下鼠标左键的一种方法是处理 MouseLeftButtonDown 事件。 ③调用 DragMove 时,必须在窗口工作区的...

weixin_30549175的博客 776

华为OD机试双机位C卷-FLASH坏块监测系统(Py/Java/C/C++/Js/Go)

华为OD机试(机考)双机位C卷 【FLASH坏块监测系统】,提供Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试 - FLASH坏块监测系统。

qq_45776114的博客 1928

贝叶斯机器学习在吸附量预测中的应用

本文介绍了贝叶斯机器学习在吸附量预测中的应用。通过Python实现完整的贝叶斯建模流程,包括数据生成、预处理、模型构建与评估。文章对比了贝叶斯与频率学派的差异,详细阐述了贝叶斯线性回归和神经网络的实现方法,并提供了数据可视化、模型诊断等技术细节。该方法不仅能预测吸附量,还能量化预测不确定性,为工程决策提供更全面的依据。全文超过6000字,结合理论推导与代码实践,是应用贝叶斯方法解决实际工程问题的完整指南。

AI的内部世界的博客 167

Semi Design DragMove 组件完全指南:让任意元素支持拖拽移动

DragMove 是 Semi Design(`@douyinfe/semi-ui`)在 v2.71.0 引入的轻量级交互组件,用于让任意被包裹的 DOM 元素支持通过鼠标或触摸拖拽改变位置,并内置拖拽范围限制、自定义触发区域与自定义位置处理等能力。本文以 [DragMove 官方文档](https://link.gitcode.com/i/9dc48b1be032ffd666ef799f4915

gitblog_01137的博客 173

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Semi Design 拖拽移动组件 DragMove 使用指南

Semi Design 提供的 DragMove 组件是一个功能强大的拖拽移动解决方案,它允许开发者轻松实现元素的拖拽定位功能。该组件从 2.71.0 版本开始提供,具有以下核心特点: 1. 支持基本拖拽功能 2. 可限制拖拽范围 3. 支持自定义拖拽触发器 4. 提供完全自定义的位置处理能力 ## 基础使用 ### 基本实现 最简单的使用方式是将需要拖动的元素用 DragMove 组件包...

gitblog_00689的博客 386

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Semi Design DragMove 组件完全指南:拖拽移动、范围约束与自定义位置处理

> 本文以 Semi Design(@douyinfe/semi-ui)Plus 分类下的 `DragMove` 组件为核心,系统讲解如何让任意元素通过拖拽改变位置,涵盖基础用法、拖拽范围约束(constrainer)、自定义触发元素(handler)、自定义位置处理(customMove)以及完整的 API 参数说明。文中所有演示代码均取自仓库文档并经过源码级解析,读者学完后可直接将 DragM

gitblog_00958的博客 156

窗体拖动 mfc 未定义的消息 #define SC_DRAGMOVE (0xf012)

#define SC_DRAGMOVE (0xf012) 不处理此ID就可以了

skdkjxy的专栏 1370

Oat 零依赖工具库清单解析:tinyrouter、floatype、dragmove 等 5 个轻量 JS 库的配套实战指南

> 本文以 Oat UI 官方文档中的「Other useful libs」清单([docs/content/other-libs.md](https://link.gitcode.com/i/05060a33e2a57420fea8e381844682aa))为核心,逐一解析与 Oat 配套推荐的 5 个零依赖 JavaScript 工具库:tinyrouter.js、highlighted-i

gitblog_01115的博客 76

推荐使用:jQuery.dragmove - 轻量级的拖放功能扩展

推荐使用:jQuery.dragmove - 轻量级的拖放功能扩展 1、项目介绍 在Web开发中,实现元素的拖放功能通常是复杂且资源密集的任务,这通常需要引入大型的库如jQuery UI。然而,jQuery.dragmove是一个小巧而强大的解决方案,它允许你在DOM元素上启用拖放功能,而无需依赖完整的jQuery UI库。这个jQuery扩展精心设计,兼容trackpad、触摸设备和标准鼠标操作...

gitblog_00063的博客 441

【亲测免费】 推荐一款轻量级的jQuery拖动插件 —— jQuery.dragmove

推荐一款轻量级的jQuery拖动插件 —— jQuery.dragmove 在网页交互设计中,可拖动元素的功能已经被广泛应用,从简单的列表排序到复杂的游戏界面。然而,实现这一功能通常需要依赖大型的库如jQuery UI。现在,有了jQuery.dragmove,你可以轻松地为DOM元素添加拖动功能,而无需引入额外的重量级库。 项目简介 jQuery.dragmove是一个小巧但强大的jQuery扩...

gitblog_00032的博客 1008

推荐开源项目:dragmove.js - 轻量级的拖放库

在现代Web开发中,交互性的增强是提升用户体验的关键因素之一。今天,我们向您推荐一个极简的JavaScript库——**dragmove.js**,它能轻松地使DOM元素变得可拖动和移动,并且还支持触摸屏操作。 ## 项目介绍 dragmove.js是一个微小但功能强大的库,仅重500字节Gzipped,却提供了无依赖的拖放功能。只需简单的几行代码,您就可以将任何元素变为可拖动组件。项目作者已...

gitblog_00806的博客 529

dragmove 里纵坐标调整值怎么算?用 TaoToken 接入的 Codex 对照 d3.sankey 查 sankey 重排

dragmove 的 clamp 上界为何是 height - d.dy、sankey.json 里 d.dy 何时写入,是这篇 D3.js sankey 排查切入点。作者在 ~/.codex/config.toml 把 Codex 接入 TaoToken,对照 d3.sankey 解释 d3.event.y、relayout 与 link.attr 重画,定位节点乱跳、连线不动。Key 入口 https://taotoken.net/?utm_source=taotoken_aicg_blog_end,配

weixin_35751194的博客 4

字节跳动 Semi Design v2.102.0 发布:DragMove 组件更新,多组件问题修复

DragMove 组件新增 `positionStrategy="relative"` 定位策略,保留元素原有布局位置,通过相对偏移实现拖动,还修复了 `centered` 可拖拽 Modal 向下偏移的问题。Semi Design 是现代、全面、灵活的设计系统和 UI 库,是包含设计语言、React 组件、主题等的中后台解决方案,能快速搭建美观的 React 应用。Semi Design 的此次更新优化了组件功能,修复诸多问题,提升了使用体验,有望在中后台开发领域更具竞争力。DragMove 组件更新。

Happyapp的博客 14
上一篇: javascript 鼠标键盘事件
下一篇: js EncodeUtf8
wfdoublext
博客等级 码龄19年 5粉丝 63原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值