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 相关文章推荐
一个加载js文件的小脚本
Jun 28 Javascript
php gethostbyname获取域名ip地址函数详解
Jan 24 Javascript
一个页面放2段图片滚动代码出现冲突的问题如何解决
Dec 21 Javascript
jquery果冻抖动效果实现方法
Jan 15 Javascript
jQuery实现html表格动态添加新行的方法
May 28 Javascript
给easyui datebox扩展一个清空的实例
Nov 09 Javascript
requireJS模块化实现返回顶部功能的方法详解
Oct 16 Javascript
js中怎么判断两个字符串相等的实例
Jan 17 Javascript
JS document内容及样式操作完整示例
Jan 14 Javascript
vue基于better-scroll实现左右联动滑动页面
Jun 30 Javascript
Openlayers显示地理位置坐标的方法
Sep 28 Javascript
H5 js点击按钮复制文本到粘贴板
Nov 19 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
浅析php面向对象public private protected 访问修饰符
2013/06/30 PHP
PHP中redis的用法深入解析
2014/02/20 PHP
PHP中array_map与array_column之间的关系分析
2014/08/19 PHP
PHP实现生成带背景的图形验证码功能
2016/10/03 PHP
PHP实现的贪婪算法实例
2017/10/17 PHP
javascript中typeof的使用示例
2013/12/19 Javascript
JavaScript把数组作为堆栈使用的方法
2015/03/20 Javascript
js实现可折叠展开的手风琴菜单效果
2015/09/07 Javascript
js实现div模拟模态对话框展现URL内容
2016/05/27 Javascript
基于BootStrap的Metronic框架实现页面链接收藏夹功能按钮移动收藏记录(使用Sortable进行拖动排序)
2016/08/29 Javascript
PHP抓取HTTPS内容和错误处理的方法
2016/09/30 Javascript
微信小程序 WXML、WXSS 和JS介绍及详解
2016/10/08 Javascript
微信小程序-图片、录音、音频播放、音乐播放、视频、文件代码实例
2016/11/22 Javascript
解决VUE项目使用Element-ui 下拉组件的验证失效问题
2020/11/07 Javascript
python执行shell获取硬件参数写入mysql的方法
2014/12/29 Python
Python有序字典简单实现方法示例
2017/09/28 Python
Django的HttpRequest和HttpResponse对象详解
2018/01/26 Python
完美解决python中ndarray 默认用科学计数法显示的问题
2018/07/14 Python
Python实现输入二叉树的先序和中序遍历,再输出后序遍历操作示例
2018/07/27 Python
详解从Django Rest Framework响应中删除空字段
2019/01/11 Python
python地震数据可视化详解
2019/06/18 Python
解决Python命令行下退格,删除,方向键乱码(亲测有效)
2020/01/16 Python
Python基于network模块制作电影人物关系图
2020/06/19 Python
python matlab库简单用法讲解
2020/12/31 Python
详解pandas apply 并行处理的几种方法
2021/02/24 Python
HTML5实现自带进度条和滑块滑杆效果
2018/04/17 HTML / CSS
德国婴儿推车和儿童安全座椅商店:BABYSHOP
2016/09/01 全球购物
理货员的岗位职责
2013/11/23 职场文书
写给保洁员表扬信
2014/01/08 职场文书
社区健康教育实施方案
2014/03/18 职场文书
《少年王勃》教学反思
2014/04/27 职场文书
机关作风整顿个人整改措施思想汇报
2014/09/29 职场文书
省级三好学生主要事迹材料
2015/11/03 职场文书
golang中的空接口使用详解
2021/03/30 Python
Python 循环读取数据内存不足的解决方案
2021/05/25 Python
一小时学会TensorFlow2之基本操作2实例代码
2021/09/04 Python