<!DOCTYPE html><html><head>    <meta charset="utf-8">    <meta http-equiv="X-UA-Compatible" content="IE=edge">    <title>JS拖拽</title>    <style>        *{padding: 0; margin: 0; }        .box{width: 100px;height: 100px;background: blue;position: absolute; }    </style>    <script src="jquery.min.js"></script>    <script>        var isDown = false;        var ObjLeft, ObjTop, posX, posY, obj,offsetX,offsetY;        $(function(){            obj=$("#box");            obj.onmousedown = down;            document.onmousemove = move;            document.onmouseup = up;        })        function down(event){            isDown=true;            obj.style.cursor = "move";            ObjLeft = obj.offset().left;            ObjTop = obj.offset().top;        }    </script>    <script>        var isDown = false;        var ObjLeft, ObjTop, posX, posY, obj,offsetX,offsetY;        window.onload = function() {            obj = document.getElementById('box');            obj.onmousedown = down;            document.onmousemove = move;            document.onmouseup = up;        }        function down(event) {            obj.style.cursor = "move";            isDown = true;            ObjLeft = obj.offsetLeft;            ObjTop = obj.offsetTop;            posX = parseInt(mousePosition(event).x);            posY = parseInt(mousePosition(event).y);            offsetX=posX-ObjLeft;            offsetY=posY-ObjTop;        }        function move(event) {            if (isDown == true) {                var x=mousePosition(event).x-offsetX;                var y=mousePosition(event).y-offsetY;                var w = document.documentElement.clientWidth - obj.offsetWidth;                var h = document.documentElement.clientHeight - obj.offsetHeight;                console.log(x + ',' + y);                x=Math.min(w,Math.max(0,x));                y=Math.min(h,Math.max(0,y));                obj.style.left = x + 'px';                obj.style.top = y + 'px';            }        }

        function up() {            isDown = false;        }

        function mousePosition(evt) {            var xPos, yPos;            evt = evt || window.event;            if (evt.pageX) {                xPos = evt.pageX;                yPos = evt.pageY;            } else {                xPos = evt.clientX + document.body.scrollLeft - document.body.clientLeft;                yPos = evt.clientY + document.body.scrollTop - document.body.clientTop;            }            return {                x: xPos,                y: yPos            }        }    </script></head><body><div id="box" class="box"></div></body></html>

转载于:https://www.cnblogs.com/znj211985211/p/5340876.html

JavaScript拖拽相关推荐

  1. Javascript 拖拽的一些高级的应用——逐行分析代码,让你轻松了解拖拽的原理...

    我们看看之前的拖拽在周围有东西的时候会出现什么问题? 在高级浏览器中不会有啥问题,我们放到IE7下面测试一下,问题就出来了.如图 我们可以很清楚的看到,文字都已经被选中了.那这个用户体验很不好,用起来 ...

  2. 功能强大的JavaScript 拖拽库 SortableJS

    功能强大的JavaScript 拖拽库 SortableJS 官网:http://www.sortablejs.com/ 示例: 配置项: var sortable = new Sortable(el ...

  3. 简易而又灵活的Javascript拖拽框架(五)

    ====================================================== 注:本文源代码点此下载 ================================= ...

  4. JavaScript 拖拽功能

    JavaScript 拖拽功能 - Web前端工程师面试题讲解 拖动图片 <img draggable="true"> 一开始 html 页面 <style> ...

  5. 简易而又灵活的Javascript拖拽框架(四)

    一.开篇 似乎拖拽已经被写烂了,没得写的了,可是我这次又来了- 上一次写的是跨列拖放,这次我要带给大家的是跨页拖放. 可以到这里来看看效果:示例效果 说明:1.如果将方框拖动到页签上立刻释放掉的话,则 ...

  6. HTML+JavaScript拖拽进度条和点击进度条(显示进度条百分比)

    实现进度条拖拽功能和点击功能,并显示占比 实现图: 附加改变区域位置,不影响进度条 完整代码 <!DOCTYPE html> <html lang="zh_CN" ...

  7. JavaScript拖拽函数

    /此方法用于拖拽/ //参数:div1是父盒子(主要是控制要拖拽的盒子不能超出父类),div2是子盒子(即要拖动的盒子) //注意:div必须加绝对定位才能拖拽 function tuozhuai(d ...

  8. JavaScript拖拽事件

    window.onload =function(){ /* * 拖拽box1元素* - 拖拽的流程 1.当鼠标在被拖拽元素上按下时,开始拖拽 onmousedown * 2.当鼠标移动时被拖拽元素跟随 ...

  9. JavaScript|拖拽|仿Android手机九点连线开锁

    最简单的JavaScript拖动代码 <script> var xx=0,yy=0; function a(v) { xx=event.x-v.offsetLeft; yy=event.y ...

最新文章

  1. 面试:你知道Java中的回调机制吗?
  2. 3.11 程序示例--逻辑运算-机器学习笔记-斯坦福吴恩达教授
  3. 新的信息论诞生前的若干问题分析
  4. mysql死锁释放时间参数_【Mysql】mysql 事务未提交导致死锁 Lock wait timeout exceeded; try restarting transaction 解决办法...
  5. 线性表的链式存储集成
  6. 网页对联广告代码效果大全
  7. 推荐:HP大中华区总裁孙振耀退休十五天后九大感言
  8. catia怎么进入装配_catia装配详细教程
  9. puzzle(1024)帐篷、星之战
  10. 设计性思考维模型及步骤(上)
  11. 1.计算机指令系统,深入学习计算机指令系统唐书
  12. [python] 使用正则表达式验证email地址是否有效
  13. 知乎问答推广怎么做,知乎问答营销技巧
  14. Linq中的group by多表多字段
  15. Stc8硬件乘除法器_16位除16位_汇编
  16. 【踩坑笔记】animate.css无效【非版本问题】
  17. autoCaptcha谷歌浏览器扩展工具-调用api识别验证码图片
  18. Android App隐藏Navigation Bar
  19. 对循环平稳谱函数的理解
  20. 补题:西南民族大学第十一届程序设计竞赛(同步赛)

热门文章

  1. Unity3d Time的使用
  2. GRPC golang版源码分析之客户端(二)
  3. Android Service演义
  4. Head First FILE Stream Pointer Overflow
  5. IDA Pro动态调试Android so文件
  6. 【问链财经-区块链基础知识系列】 第四十六课 区块链如何作用于医药行业
  7. c执行cmd pdf2swf_PDF2SWF简单使用
  8. JZOJ 5376. 【NOIP2017提高A组模拟9.19】Candy
  9. JZOJ 1322. 硬币游戏
  10. 最短路径算法(一) Dijkstra算法(贪心算法)