可移动/可拖动

2023-11-27

这是我更新和修改的脚本,它完全可以工作,除了我想通用它......观察****我怎样才能做到这一点,这样我就不必这样做function(e){BOX.Draggable.elemen = e.target || e.srcElement; elementDraggable(e);每次我需要对不同的元素使用可拖动功能?

window.onload = addListeners;

var BOX = function(){
  return{
    Draggable: function(){}
  };
}();

function addListeners(){
  document.getElementById('div').addEventListener('contextmenu', menumove, false);
  **document.getElementById('div').addEventListener('mousedown', function(e){BOX.Draggable.elemen = e.target || e.srcElement; elementDraggable(e);}, false);**
}

function elementDraggable(e){
  var e = e || window.event;
  var div = BOX.Draggable.elemen;
  BOX.Draggable.innerX = e.clientX + window.pageXOffset - div.offsetLeft;
  BOX.Draggable.innerY = e.clientY + window.pageYOffset - div.offsetTop;

  window.addEventListener('mousemove', elementMove, false);
  window.addEventListener('mouseup', function(){
    window.removeEventListener('mousemove', elementMove, false);
    }, true);

  function elementMove(e){
    div.style.position = 'absolute';
    div.style.left = e.clientX + window.pageXOffset - BOX.Draggable.innerX + 'px';
    div.style.top = e.clientY + window.pageYOffset - BOX.Draggable.innerY + 'px';
  }
}

jQuery 适合您吗?由于代码已经存在,它使您正在做的事情变得非常简单。

http://jqueryui.com/demos/draggable/

Demo

JavaScript 代码

window.onload = addListeners;

function addListeners(){
    document.getElementById('dxy').addEventListener('mousedown', mouseDown, false);
    window.addEventListener('mouseup', mouseUp, false);

}

function mouseUp()
{
    window.removeEventListener('mousemove', divMove, true);
}

function mouseDown(e){
  window.addEventListener('mousemove', divMove, true);
}

function divMove(e){
    var div = document.getElementById('dxy');
  div.style.position = 'absolute';
  div.style.top = e.clientY + 'px';
  div.style.left = e.clientX + 'px';
}​
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

可移动/可拖动
的相关文章

随机推荐

  • 对构造函数的未定义引用

    我是一名尝试使用 C 的 Java 开发人员 我刚刚创建了一个新课程 在我的其他课程中 我想要一个可以存储 Filter 对象的列表 Filter h ifndef FILTER H define FILTER H class Filter
  • 递归函数循环和堆栈

    众所周知 所有递归函数都可以仅使用单个循环和堆栈来编写 尽管这种转换可能被批评为丑陋或可读性较差 但其主要用途显然是避免破坏堆 有一些自然的方法可以将简单的递归函数转换为循环 例如 使用累加器进行简单的尾递归消除 到目前为止 我还没有看到这
  • 为什么使用非贪婪模式时 Java 正则表达式“匹配”与“查找”会得到不同的匹配? [复制]

    这个问题在这里已经有答案了 因此 我遇到了一个错误 该错误是由于期望 matches 方法找到与使用 find 完全相同的匹配项而引起的 通常是这种情况 但看起来如果非贪婪模式可以延伸到贪婪地接受整个字符串 那么它是允许的 这看起来像是 J
  • 最佳 bcrypt 工作因子

    密码散列的理想 bcrypt 工作因素是什么 如果我使用因子 10 则在我的笔记本电脑上散列密码大约需要 0 1 秒 如果我们最终得到一个非常繁忙的网站 那么仅仅检查人们的密码就会变成大量的工作 也许使用工作因子 7 会更好 将每次笔记本电
  • Git 克隆在特定存储库上返回结果 = 18 代码 = 200

    我正在尝试从我们公司存储库克隆内部存储库 但不断收到此错误 error RPC failed result 18 HTTP code 200 它总是仅在存储库完全下载后才会发生 需要一段时间 我尝试过使用 torotiseGit 这是报告
  • TeamCity 的 AssemblyInfo 修补程序的数字格式

    我曾经使用过 TeamCity WiX MSBuild 社区任务 现在我已经升级到 WiX 3 5 我不记得我是如何配置它的 当我浏览 TeamCity 时 我遇到了 AssemblyInfo Patcher 我想 太棒了 这将使我的生活变
  • 如何在 MATLAB 中创建分段内联函数?

    我在 MATLAB 中有一个函数 它接受另一个函数作为参数 我想以某种方式定义一个可以传入的分段内联函数 这在 MATLAB 中是否可行 编辑 我想代表的功能是 f x 1 0 0 0 lt x lt 0 5 1 0 0 5 lt x lt
  • 从 JavaScript 读取 web.config

    有什么方法可以使用 javascript 读取 web config 中的配置值吗 我为什么要这么做 我的网站中有一个计时器 如果用户 20 分钟不活动 它会弹出一个带有倒计时器的模式对话框 倒计时 2 分钟 如果用户没有响应 系统会将其注
  • 如果数组中的所有对象都有属性值,则返回 true

    我有一个对象数组 如下所示 scope objectArray Title object1 Description lorem Value 57 Title object2 Description ipsum Value 32 Title
  • 在 sqlalchemy 中使用计算列更新表

    我正在使用 SQLalchemy 在旧版 MSSQL 数据库中工作 我有一个声明性映射 该数据库有几个表 其中包含计算列 我可以很好地阅读它们 但是 当然 写入计算列不起作用 但是 当我创建并尝试保存 ORM 对象时 SQLAlchemy
  • 活动的 AlertDialog 样式按钮

    我有一个活动 底部有一个 保存 和 取消 按钮 在 AlertDialog 中 按钮显示在某种样式化的容器视图内 我怎样才能让我的活动中的按钮具有相同的外观 具体来说 我如何应用 AlertDialog 中按钮容器视图的样式来表示我的 Ac
  • 在 JavaScript 中将字符串转换为变量名

    我一直在寻找解决方案 但找不到任何有效的解决方案 我有一个变量叫做onlyVideo onlyVideo 字符串被传递到函数中 我想设置变量onlyVideo在函数内部作为某种东西 我怎样才能做到这一点 有很多变量可以被调用到函数中 所以我
  • Android 输入文本对话框

    当用户单击Button在我的应用程序中 打印在SurfaceView 我想要一条短信Dialog出现 我想将结果存储在String 我想要文字Dialog覆盖当前屏幕 我怎样才能做到这一点 听起来是一个使用的好机会警报对话框 尽管看起来很简
  • OpenCV 2.2 Windows XP MinGW 构建在namedWindow、imshow 上崩溃

    我下载了适用于 Windows 的最新 OpenCV 2 2 源代码 并在 CMake 2 8 的帮助下使用 MinGW 4 4 1 在 Windows XP 上进行编译 一切都很顺利 编译 mingw32 make 和安装 mingw32
  • 调试:为多列创建多个滞后的函数 (dplyr)

    我想创建多个变量的多个滞后 所以我认为编写一个函数会很有帮助 我的代码抛出警告 将向量截断为长度 1 和错误结果 library dplyr time lt c 2000 2009 2000 2009 x lt c 1 10 10 19 i
  • 将 HTML 转换为 XML

    我有数百个 HTML 文件需要转换为 XML 我们使用这些 HTML 为应用程序提供内容 但现在我们必须以 XML 形式提供这些内容 HTML 文件包含 表格 div 图像 p b 或强标记等 我用谷歌搜索并找到了一些应用程序 但我还无法实
  • 是否有比使用 C++ 的 FindFirstFile/FindNextFile 更快的枚举文件夹替代方法?

    我需要获取文件夹内子文件夹的所有路径 使用 WinAPI 和 C 到目前为止 我发现的唯一解决方案是递归调用查找第一个文件 查找下一个文件但在层次结构较深的文件夹上执行此操作需要花费大量时间 所以我想知道 只是为了获取文件夹名称 是否有更快
  • 有没有比忙等待更智能的方法来检查 System.Net.WebClient.DownloadFileAsync() 的下载完成情况?

    我正在使用 System Net WebClient DownloadFileAsync 下载文件 使用异步版本的唯一原因是显示下载进度 在达到 100 之前 我的代码执行可能不会继续 目前我正在使用忙等待 参见代码 但我想知道是否有更聪明
  • fgetpos() 行为取决于换行符

    考虑这两个文件 file1 txt Windows 换行符 abc r n def r n file2 txt Unix 换行符 abc n def n 我注意到对于 file2 txt 通过以下方式获得的位置fgetpos没有正确增加 我
  • 可移动/可拖动

    这是我更新和修改的脚本 它完全可以工作 除了我想通用它 观察 我怎样才能做到这一点 这样我就不必这样做function e BOX Draggable elemen e target e srcElement elementDraggabl