JS实现div随着鼠标移动
来源:互联网 发布:一览 mac 编辑:程序博客网 时间:2024/05/16 19:28
效果图
代码
<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title></title> </head> <body> <div id="rec" style="position:absolute;left: 100px;top: 100px; width: 50px;height: 50px;background: red;"></div> </body> <script type="text/javascript"> //获取div元素 var rec = document.getElementById("rec") var down = false; var dx = 0; var dy = 0; var sx = 0; var sy = 0; document.onmousemove = function(e){ if (down) { var ev = e || event; console.log(ev.clientY) rec.style.top = ev.clientY - (dy - sy) + 'px'; rec.style.left = ev.clientX - (dx - sx) + 'px'; } } rec.onmousedown = function(){ dx = event.clientX; dy = event.clientY; sx = parseInt(rec.style.left); sy = parseInt(rec.style.top); if (!down) { down = true; } } document.onmouseup = function(){ if (down) { down = false; } } </script> <script></html>
这里写代码片
在上面的代码中我们需要注意下面几个地方:
1.事件兼容
在ie中我们通过window.event对象就能获取到事件对象,而在火狐中,事件对象是通过函数的参数传递过来的,所以在此我们要进行一个判断,clientX指的是鼠标在当前浏览器窗口中的位置。
2.clientX返回的是一个数字,我们需要拼接px,才能出现效果。
3.需要给div指定定位方式,使其脱离文档流,才能起到移动的效果
完成了上面的功能之后,我们来实现一下点击动态创建div,然后移动
效果图
代码
<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title></title> <style type="text/css"> .one{ position: absolute; } </style> </head> <body> <input type="button" id="btn" value="add" /> </body> <script type="text/javascript"> var btn = document.getElementById('btn'); var down = false; var dx = 0; var dy = 0; var sx = 0; var sy = 0; var d= null; btn.onclick = function() { if (d != null) { return; } d = document.createElement('div'); //d.style.left要带px d.style.left = "100px"; d.style.top = "40px"; d.style.background = "green"; d.style.width = "100px"; d.style.height = "30px" d.className = "one"; document.body.appendChild(d) //此处的onmousedown事件要放在click函数中,否则会报错 d.onmousedown = function(){ dx = event.clientX; dy = event.clientY; sx = parseInt(d.style.left); sy = parseInt(d.style.top); if (!down) { down = true; } } } document.onmousemove = function(e){ if (down) { var ev = e || event; d.style.top = ev.clientY - (dy - sy) + 'px'; d.style.left = ev.clientX - (dx - sx) + 'px'; } } document.onmouseup = function(){ if (down) { down = false; } } </script></html>
阅读全文
1 0
- JS实现div随着鼠标移动
- js 实现 鼠标 移动 div
- div随着鼠标移动而移动并获取鼠标坐标
- Js实现div跟着鼠标的移动
- JS实现鼠标拖动div移动
- jq实现浮层随着鼠标移动
- jquery让div隐藏,显示,随着鼠标移动
- JS控制层随着鼠标移动而移动。
- 元素随着鼠标移动
- 图片随着鼠标移动
- javascript实现窗口随着鼠标移动且移动路径重现
- js+html+css实现鼠标移动div实例
- 原生js实现div随鼠标移动效果
- JS+DIV 鼠标移动 DIV切换
- Jquery实现鼠标移动div
- jquery实现表格随着鼠标的移动而显示亮色
- github404背景随着鼠标移动的样式实现
- js鼠标控制div缩放移动
- Linux下Sniffer程序的实现
- ORACLE 数据库泵导入导出脚本
- Python3简单教程(六)数据结构
- aaa
- java基础知识点总结
- JS实现div随着鼠标移动
- VirtualBox中VboxGuestAddition的安装方法
- linux 创建内核线程
- Rx系列学习笔记_Rxjava的基本了解
- 排序算法——选择排序
- Qt学习01——字符串类
- 如何学习新技术
- Java线程 CompletionService
- java求质数,例子1-100