JS实现的简单拖拽功能示例


Posted in Javascript onMarch 13, 2017

本文实例讲述了JS实现的简单拖拽功能。分享给大家供大家参考,具体如下:

1、实例代码:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
    <title>js实现拖拽</title>
    <style>
      #water{
        width:400px;
        height:188px;
        background-color: #ff6600;
      }
      #water:hover{
        cursor: pointer;
      }
    </style>
  </head>
  <body>
    <div id="water"></div>
    <script>
      dragInit("water");//调用
      //拖拽初始化
      function dragInit(id){
        var $div = document.getElementById(id);
        var style = {
          position: "absolute",
          left: "0",
          top: "0"
        }
        for(var k in style){
          $div.style[k] = style[k];//设置关键css
        }
        $div.onmousedown = function(e){//鼠标按键按下
          e = e || window.event;
          var x = e.clientX - $div.offsetLeft;//鼠标到左上角的距离信息, 固定不变
          var y = e.clientY - $div.offsetTop;
          document.onmousemove = function(e){//鼠标移动
            e = e || window.event;
            var L = e.clientX - x;
            var T = e.clientY - y;
            var pW = document.documentElement.clientWidth;//页面宽度
            var pH = document.documentElement.clientHeight;
            var divW = $div.offsetWidth;//Dom宽度
            var divH = $div.offsetHeight;
            // 范围限定
            if(L < 0){
              L = 0;
            }
            if(T < 0){
              T = 0;
            }
            if(L > pW - divW){
              L = pW - divW;
            }
            if(T > pH - divH){
              T = pH - divH;
            }
            // 范围限定 end
            $div.style.left = L + "px";
            $div.style.top = T + "px";
          };
          document.onmouseup = function(e){//鼠标按键松开
            document.onmousemove = null;
          };
        };
      }
    </script>
  </body>
</html>

2、运行效果图如下:

JS实现的简单拖拽功能示例

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
Javascript 键盘keyCode键码值表
Dec 24 Javascript
js继承的实现代码
Aug 05 Javascript
获取div编辑框,textarea,input text的光标位置 兼容IE,FF和Chrome的方法介绍
Nov 08 Javascript
Jquery实现页面加载时弹出对话框代码
Apr 19 Javascript
一个JS的日期格式化算法示例
Jul 31 Javascript
在jquery中combobox多选的不兼容问题总结
Dec 24 Javascript
基于Vue过渡状态实例讲解
Sep 14 Javascript
js移动端图片压缩上传功能
Aug 18 Javascript
vue router-link传参以及参数的使用实例
Nov 10 Javascript
vue使用axios时关于this的指向问题详解
Dec 22 Javascript
Vue组件通信的四种方式汇总
Feb 08 Javascript
fetch 如何实现请求数据
Dec 20 Javascript
jQuery中layer分页器的使用
Mar 13 #Javascript
如何理解jQuery中的ajaxSubmit方法
Mar 13 #Javascript
Node.js调试技术总结分享
Mar 12 #Javascript
JavaScript中双符号的运算详解
Mar 12 #Javascript
利用Node.js对文件进行重命名
Mar 12 #Javascript
纯js的右下角弹窗实例
Mar 12 #Javascript
彻底学会Angular.js中的transclusion
Mar 12 #Javascript
You might like
不支持fsockopen但支持culr环境下下ucenter与modoer通讯问题
2011/08/12 PHP
redis 队列操作的例子(php)
2012/04/12 PHP
php中通过数组进行高效随机抽取指定条记录的算法
2013/09/09 PHP
php rsa加密解密使用详解
2015/01/14 PHP
PHP实现微信商户支付企业付款到零钱功能
2018/09/30 PHP
PDO::getAvailableDrivers讲解
2019/01/28 PHP
PHP封装mysqli基于面向对象的mysql数据库操作类与用法示例
2019/02/25 PHP
Laravel框架查询构造器简单示例
2019/05/08 PHP
获取当前网页document.url location.href区别总结
2008/05/10 Javascript
帮助避免错误的Javascript陷阱清单
2009/05/31 Javascript
jQuery异步验证用户名是否存在示例代码
2014/05/21 Javascript
NodeJS学习笔记之Connect中间件应用实例
2015/01/27 NodeJs
JS实现在线统计一个页面内鼠标点击次数的方法
2015/02/28 Javascript
JavaScript日期类型的一些用法介绍
2015/03/02 Javascript
js实现时间显示几天前、几小时前或者几分钟前的方法集锦
2015/05/29 Javascript
js模仿php中strtotime()与date()函数实现方法
2015/08/11 Javascript
微信小程序前端源码逻辑和工作流
2016/09/25 Javascript
BootStrap 模态框实现刷新网页并关闭功能
2017/01/04 Javascript
浅谈Vue的加载顺序探讨
2017/10/25 Javascript
详解设置Webstorm 利用babel将ES6自动转码成ES5
2017/12/20 Javascript
vue中改变选中当前项的显示隐藏或者状态的实现方法
2018/02/08 Javascript
vue路由对不同界面进行传参及跳转的总结
2019/04/20 Javascript
VSCode Vue开发推荐插件和VSCode快捷键(小结)
2020/08/08 Javascript
在Python中marshal对象序列化的相关知识
2015/07/01 Python
python智联招聘爬虫并导入到excel代码实例
2019/09/09 Python
python实现实时视频流播放代码实例
2020/01/11 Python
Python环境管理virtualenv&amp;virtualenvwrapper的配置详解
2020/07/01 Python
详解pycharm2020.1.1专业版安装指南(推荐)
2020/08/07 Python
好莱坞百老汇御用王牌美妆:Koh Gen Do 江原道
2018/04/03 全球购物
团员的自我评价
2013/12/01 职场文书
仓库保管员岗位职责
2013/12/20 职场文书
承办会议欢迎词
2014/01/17 职场文书
商场消防安全责任书
2014/07/29 职场文书
销售团队获奖感言
2014/08/14 职场文书
2015年民主生活会发言材料
2014/12/15 职场文书
医护人员继续教育学习心得体会
2016/01/19 职场文书