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获取GridView中用户点击控件的行号,列号
Apr 14 Javascript
JQuery Tab选项卡效果代码改进版
Apr 01 Javascript
JavaScript中Math对象方法使用概述
Jan 02 Javascript
JQuery each()嵌套使用小结
Apr 18 Javascript
纯js实现重发验证码按钮倒数功能
Apr 21 Javascript
jQuery标签编辑插件Tagit使用指南
Apr 21 Javascript
jQuery实现的纵向下拉菜单实例详解【附demo源码下载】
Jul 09 Javascript
AngularJS2中一种button切换效果的实现方法(二)
Mar 27 Javascript
Vue分页组件实例代码
Apr 17 Javascript
this在vue和小程序中的使用详解
Jan 28 Javascript
VUE组件中的 Drawer 抽屉实现代码
Aug 06 Javascript
javascript中的数据类型检测方法详解
Aug 07 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 mysqli_free_result()与mysqli_fetch_array()函数详解
2016/09/21 PHP
PHP关键特性之命名空间实例详解
2017/05/06 PHP
strpos() 函数判断字符串中是否包含某字符串的方法
2019/01/16 PHP
基于jquery的兼容各种浏览器的iframe自适应高度的脚本
2010/08/13 Javascript
ie中js创建checkbox默认选中问题探讨
2013/10/21 Javascript
Tab切换组件(选项卡功能)实例代码
2013/11/21 Javascript
在JavaScript中call()与apply()区别
2016/01/22 Javascript
js自定义select下拉框美化特效
2016/05/12 Javascript
全面了解JavaScript对象进阶
2016/07/19 Javascript
AngularJS HTML DOM详解及示例代码
2016/08/17 Javascript
强大Vue.js组件浅析
2016/09/12 Javascript
nodejs学习笔记之路由
2017/03/27 NodeJs
react-router JS 控制路由跳转实例
2017/06/15 Javascript
js使用html2canvas实现屏幕截取的示例代码
2017/08/28 Javascript
使用百度地图实现地图网格的示例
2018/02/06 Javascript
Vue.js中该如何自己维护路由跳转记录
2019/05/19 Javascript
vuex 动态注册方法 registerModule的实现
2019/07/03 Javascript
layui 关闭open弹出框 刷新table表格页面的方法
2019/09/16 Javascript
微信小程序可滑动月日历组件使用详解
2019/10/21 Javascript
vue实现公告栏文字上下滚动效果的示例代码
2020/06/16 Javascript
Python的GUI框架PySide的安装配置教程
2016/02/16 Python
python 实现一个贴吧图片爬虫的示例
2017/10/12 Python
Python图像处理之gif动态图的解析与合成操作详解
2018/12/30 Python
Flask框架单例模式实现方法详解
2019/07/31 Python
Python 解决OPEN读文件报错 ,路径以及r的问题
2019/12/19 Python
python 8种必备的gui库
2020/08/27 Python
发现世界上最好的珠宝设计师:JewelStreet
2017/12/17 全球购物
Bath & Body Works阿联酋:在线购买沐浴和身体用品
2021/02/27 全球购物
在购买印度民族服饰:Soch
2020/09/15 全球购物
工商管理本科毕业生求职信范文
2013/10/05 职场文书
远程教育心得体会
2014/01/03 职场文书
获奖的大学生创业计划书
2014/01/05 职场文书
工作收入住址证明
2014/10/28 职场文书
观后感的写法
2015/06/19 职场文书
小学思想品德教学反思
2016/02/24 职场文书
Python常遇到的错误和异常
2021/11/02 Python