body{

margin: 0;

padding: 0;

}

div{

position: absolute;

top: 200px;/*div的y轴*/

left: 150px;/*div的x轴*/

width: 300px;

height: 200px;

background-color: gray;

}

div:hover{

cursor: move;

}

/*

* 分析:

* 获取鼠标实时移动的坐标;m_move_x,m_move_y

* 鼠标按下时的坐标;m_down_x,m_down_y

* div的坐标;dx,dy

* 鼠标按下时,鼠标与div的偏移量;md_x,md_y

* div的新坐标;ndx,ndy

*/

var isDown = false;//记录鼠标状态

var move_div ;//要操作的div对象

var m_move_x,m_move_y,m_down_x,m_down_y,dx,dy,md_x,md_y,ndx,ndy;

//鼠标按下

function down(){

move_div = document.getElementById("move_div");

isDown = true;

//获取鼠标按下时坐标

m_down_x = event.pageX;

m_down_y = event.pageY;

//获取div坐标

dx = move_div.offsetLeft;

dy = move_div.offsetTop;

//获取鼠标与div偏移量

md_x = m_down_x - dx;

md_y = m_down_y - dy;

}

//鼠标移动

function move(){

move_div = document.getElementById("move_div");

//实时更新div的坐标

dx = move_div.offsetLeft;

dy = move_div.offsetTop;

//获取鼠标移动实时坐标

m_move_x = event.pageX;

m_move_y = event.pageY;

//鼠标按下时移动才触发

if(isDown){

//获取新div坐标,鼠标实时坐标 - 鼠标与div的偏移量

ndx = m_move_x - md_x;

ndy = m_move_y - md_y;

//把新div坐标值赋给div对象

move_div.style.left = ndx+"px";

move_div.style.top = ndy+"px";

}

}

//鼠标释放

function up(){

isDown = false;

}

在html监听鼠标拖动,使用javaScript实现鼠标拖拽事件相关推荐

  1. JavaScript中的拖拽事件且限制出界

    JavaScript中的拖拽事件限制出界 JavaScript事件中很多都会用到拖拽,而在现实中很多拖拽是会限制在浏览器界面禁止出界的,下面是封装好的限制出界的拖拽事件. function drag( ...

  2. qml鼠标拖动_qml实现窗口的拖拽效果

    核心思想是: 在main中引入QMainWindow对象,将qml文件作为该对象的widget,并将该对象注册到qml中,然后再qml中通过识别鼠标的位移来更改这个mainwindow的pos属性. ...

  3. puppeteer 鼠标定位滑块_监听滑块滑动或滑块随鼠标移动 | JShare

    监听滑块滑动或滑块随鼠标移动 | JShare fork from "Column with rotated labels" var data = [29,12,32,28,22, ...

  4. onchange监听input值变化及input隐藏后change事件不触发的原因与解决方法(设置readonly后onchange不起作用的解决方案)

    onchange监听input值变化及input隐藏后change事件不触发的原因与解决方法(设置readonly后onchange不起作用的解决方案) 参考文章: (1)onchange监听inpu ...

  5. 监听返回app_基于 Redis 消息队列实现 Laravel 事件监听及底层源码探究

    在 Laravel 中,除了使用 dispatch 辅助函数通过 Illuminate\Bus\Dispatcher 显式推送队列任务外,还可以通过事件监听的方式隐式进行队列任务推送,在这个场景下,事 ...

  6. Android监听系统输入法键盘弹出显示与隐藏事件

    Android监听系统输入法键盘弹出显示与隐藏事件 有时候需要监听Android系统输入法的弹出显示事件,比如:微信聊天时,不管你当前在聊天中的什么位置(上滑查看消息历史),每当你点击输入框时,都会自 ...

  7. 【JavaScript 进阶之旅 DOM篇 第九章】鼠标行为、pageX|Y封装、拖拽事件封装

    文章目录 一.鼠标行为 1.clientX/Y 2.pageX/Y 3.screenX/Y 4.offsetX/Y 5.layerX/Y(不推荐使用) 6.x/y(不推荐使用) 二.pageX|Y封装 ...

  8. JavaFX鼠标拖拽事件

    一.节点原拖拽事件 //鼠标拖拽进入node node.setOnMouseDragEntered(event->{//do something });//鼠标拖拽退出node node.set ...

  9. 弹出框的鼠标拖拽事件

    几个与定位有关的概念: js: clientX/clientY属性:获得事件发生时鼠标指针在视口中的水平和垂直坐标. screenX/screenY属性:获取鼠标事件发生时鼠标光标相对于整个电脑屏幕的 ...

最新文章

  1. web第6次作业position
  2. NetBeans可用性提示
  3. IoTDI2019论文列表
  4. javascript 进度条的几种方法
  5. PSD分层可临摹模板|无线端电商页面UI设计几个常见的错误
  6. 数学建模笔记2方法分类
  7. keras 中 reuse 问题
  8. 安徽大学计算机科学与技术学院刘峰,刘峰
  9. git rebase 和 merge的区别
  10. linux中搜索指定字符串的方法
  11. html5离散数学,离散数学怎样判断合取范式和析取范式
  12. Banner 图片轮播
  13. 高德地图两种引入方式
  14. LoRa vs LTE-M vs Sigfox
  15. 币图告诉你如何解决双花问题
  16. C++:实现将华氏度转换为摄氏度
  17. 网络互联技术(1)——前篇—【转载】计算机发展史
  18. 微软dhcp服务器配置,附录:在 Windows DHCP Server 以外的 DHCP 服务器上配置 DHCP 选项...
  19. Java语言中类与对象的创建
  20. 程序员面试之葵花宝典

热门文章

  1. Android性能优化来龙去脉总结,移动端h5页面适配
  2. springboot log4j2.yml 配置日志文件自动过期(只保留7天) 亲测可以!
  3. 阿里云AI训练营 Class4课程笔记
  4. LOJ6356四色灯
  5. 如何将桌面文件夹移到计算机,如何将大文件快速拷贝/复制/分享到另一台电脑?...
  6. 解决nvidia-smi不是内部或外部命令,也不是可运行的程序或批处理问题
  7. 搞笑的中国片英文翻译(摘)
  8. TP5写入避免某字段重复的问题
  9. 计算机论文图片大小,对一副大小为256*256的bmp格式256色的灰度图象进行霍夫曼和字典编码压缩处理...
  10. “90/80”,对于雄安意味着什么?