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 05 Javascript
juqery 学习之四 筛选查找
Nov 30 Javascript
jQuery LigerUI 使用教程表格篇(1)
Jan 18 Javascript
jQuery消息提示框插件Tipso
May 04 Javascript
angularjs创建弹出框实现拖动效果
Aug 25 Javascript
JavaScript的React框架中的JSX语法学习入门教程
Mar 05 Javascript
angularjs使用gulp-uglify压缩后执行报错的解决方法
Mar 07 Javascript
解决vue页面刷新或者后退参数丢失的问题
Mar 13 Javascript
jQuery选择器之层次选择器用法实例分析
Feb 19 jQuery
JS中封装axios来管控api的2种方式
Sep 11 Javascript
通过layer实现可输入的模态框的例子
Sep 27 Javascript
js实现随机点名
Jan 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生成shtml类用法实例
2014/12/09 PHP
php+mysql大量用户登录解决方案分析
2014/12/29 PHP
PHP给前端返回一个JSON对象的实例讲解
2018/05/31 PHP
详解关于php的xdebug配置(编辑器vscode)
2019/01/29 PHP
php使用mysqli和pdo扩展,测试对比连接mysql数据库的效率完整示例
2019/05/09 PHP
对laravel的csrf 防御机制详解,及form中csrf_token()的存在介绍
2019/10/24 PHP
用jquery存取照片的具体实现方法
2013/06/30 Javascript
js操作滚动条事件实例
2015/01/29 Javascript
基于JavaScript短信验证码如何实现
2016/01/24 Javascript
用原生js做单页应用
2017/01/17 Javascript
纯JS单页面赛车游戏制作代码分享
2017/03/03 Javascript
Canvas放置反弹效果随机图形(实例)
2017/08/17 Javascript
详解JavaScript 为什么要有 Symbol 类型?
2019/04/03 Javascript
Node.js使用MongoDB的ObjectId作为查询条件的方法
2019/09/10 Javascript
在Uni中使用Vue的EventBus总线机制操作
2020/07/31 Javascript
浅谈python函数之作用域(python3.5)
2017/10/27 Python
Python中getpass模块无回显输入源码解析
2018/01/11 Python
详解Python之unittest单元测试代码
2018/01/24 Python
Python文本处理之按行处理大文件的方法
2018/04/09 Python
Python 3 实现定义跨模块的全局变量和使用教程
2019/07/07 Python
利用pandas将非数值数据转换成数值的方式
2019/12/18 Python
解决django的template中如果无法引用MEDIA_URL问题
2020/04/07 Python
有关HTML5 Video对象的ontimeupdate事件(Chrome上无效)的问题
2013/07/19 HTML / CSS
Melissa鞋马来西亚官方网站:MDreams马来西亚
2018/04/05 全球购物
Love, Bonito国际官网:新加坡女装品牌
2021/03/13 全球购物
简述索引存取方法的作用和建立索引的原则
2013/03/26 面试题
一套软件测试笔试题
2014/07/25 面试题
面向对象设计的原则是什么
2013/02/13 面试题
营销专业应届生求职信
2013/11/26 职场文书
日语专业毕业生求职信
2013/12/04 职场文书
2014的自我评价
2014/01/13 职场文书
企业消防安全制度
2014/02/02 职场文书
结婚喜宴迎宾词
2015/08/10 职场文书
十大最强妖精系宝可梦,哲尔尼亚斯实力最强,第五被称为大力士
2022/03/18 日漫
Java虚拟机内存结构及编码实战分享
2022/04/07 Java/Android
详解ZABBIX监控ESXI主机的问题
2022/06/21 Servers