完美实现js拖拽效果 return false用法详解


Posted in Javascript onJuly 28, 2017

本文为大家分享了完美实现js拖拽效果的具体代码,告诉大家return false的用法,供大家参考,具体内容如下

1.return false可以用来阻止默认事件即系统默认事件。例如通过阻止默认事件,来对textarea中的值进行范围限制(通过限制keycode的数值),也可以自定义在页面中的右键菜单(oncontextmenu)。

2.在鼠标移动(mousemove)等事件中,是需要给事件传一个参数,保证程序的正常运行。而为了兼容取事件方法为:var oEvent=ev||event;

3.在节点中创建一个新的节点的方法为:

var oBox=document.createElement('div');
    oBox.className='box';
    oBox.style.left = oDiv.offsetLeft+'px';
    oBox.style.top = oDiv.offsetTop+'px';
    oBox.style.width = oDiv.offsetWidth+'px';
    oBox.style.height = oDiv.offsetHeight+'px';
    document.body.appendChild(oBox);
    //注意,在创建完之后一定要将创建好的节点加入body中!!!

下列为完整代码:

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>完美拖拽2</title>
 <style>
  *{
   margin: 0;
   padding: 0;
  }
  #div1{
   width: 150px;
   height: 150px;
   background: #71C525;
   position: absolute;
  }
  .box{
   border: 2px dashed black;
   position: absolute;
  }
 </style>
 <script>
  window.onload=function()
  {
   var oDiv = document.getElementById('div1');
   var disX=null;
   var disY=null;

   oDiv.onmousedown=function(ev)
   {
    var oEvent=event||ev;
    disX=oEvent.clientX-oDiv.offsetLeft;
    disY=oEvent.clientY-oDiv.offsetTop;

    var oBox=document.createElement('div');
    oBox.className='box';
    oBox.style.left = oDiv.offsetLeft+'px';
    oBox.style.top = oDiv.offsetTop+'px';
    oBox.style.width = oDiv.offsetWidth+'px';
    oBox.style.height = oDiv.offsetHeight+'px';

    document.body.appendChild(oBox);

    document.onmousemove=function(ev)
    {
     var oEvent=event||ev;
     var l=oEvent.clientX-disX;
     var t=oEvent.clientY-disY;

     if (l<0) {
      l=0;
     } else if (l>document.documentElement.clientWidth-oDiv.offsetWidth) {
      l=document.documentElement.clientWidth-oDiv.offsetWidth;
     }
     if (t<0) {
      t=0;
     } else if (t>document.documentElement.clientHeight-oDiv.offsetHeight) {
      t=document.documentElement.clientHeight-oDiv.offsetHeight;
     }

     oBox.style.left = l+'px';
     oBox.style.top=t+'px';

    };
    document.onmouseup=function()
    {
     document.onmousedown=null;
     document.onmousemove=null;
     oDiv.style.left = oBox.offsetLeft+'px';
     oDiv.style.top = oBox.offsetTop+'px';
     document.body.removeChild(oBox);
    };
    return false;//阻止默认事件(系统默认事件)!
   };
  };
 </script>
</head>
<body>
 <div id="div1"></div>
</body>
</html>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
IE8 浏览器Cookie的处理
Jan 31 Javascript
前后台交互过程中json格式如何解析以及如何生成
Dec 26 Javascript
通过jquery 获取URL参数并进行转码
Aug 18 Javascript
JavaScript中的变量作用域介绍
Dec 31 Javascript
javascript使用正则表达式实现去掉空格之后的字符
Feb 15 Javascript
javascript实现简单的全选和反选功能
Jan 05 Javascript
Centos7 中 Node.js安装简单方法
Nov 02 Javascript
获取今天,昨天,本周,上周,本月,上月时间(实例分享)
Jan 04 Javascript
Vue路由跳转问题记录详解
Jun 15 Javascript
微信小程序之GET请求的实例详解
Sep 29 Javascript
Vue组件开发之LeanCloud带图形校验码的短信发送功能
Nov 07 Javascript
JS实现网页烟花动画效果
Mar 10 Javascript
webpack 2的react开发配置实例代码
Jul 28 #Javascript
基于AngularJS实现表单验证功能
Jul 28 #Javascript
AngularJS service之select下拉菜单效果
Jul 28 #Javascript
解决Vue2.0自带浏览器里无法打开的原因(兼容处理)
Jul 28 #Javascript
bootstrap datepicker插件默认英文修改为中文
Jul 28 #Javascript
基于BootStrap multiselect.js实现的下拉框联动效果
Jul 28 #Javascript
基于JS实现移动端左滑删除功能
Jul 28 #Javascript
You might like
聊天室php&amp;mysql(一)
2006/10/09 PHP
一个基于PDO的数据库操作类(新) 一个PDO事务实例
2011/07/03 PHP
PHP is_subclass_of函数的一个BUG和解决方法
2014/06/01 PHP
php实例分享之html转为rtf格式
2014/06/02 PHP
以实例全面讲解PHP中多进程编程的相关函数的使用
2015/08/18 PHP
一段非常简单的让图片自动切换js代码
2006/11/10 Javascript
JavaScript实现两个Table固定表头根据页面大小自行调整
2014/01/03 Javascript
两种方法实现在HTML页面加载完毕后运行某个js
2014/06/16 Javascript
JQuery中的html()、text()、val()区别示例介绍
2014/09/01 Javascript
js与C#进行时间戳转换
2014/11/14 Javascript
jQuery的基本概念与高级编程
2015/05/14 Javascript
有关jquery与DOM节点操作方法和属性记录
2016/04/15 Javascript
js实现人民币大写金额形式转换
2016/04/27 Javascript
BootStrap智能表单实战系列(四)表单布局介绍
2016/06/13 Javascript
JavaScript利用闭包实现模块化
2017/01/13 Javascript
js实现横向拖拽导航条功能
2017/02/17 Javascript
vue双向绑定简要分析
2017/03/23 Javascript
bootstrap如何让dropdown menu按钮式下拉框长度一致
2017/04/10 Javascript
JavaScript数组去重算法实例小结
2018/05/07 Javascript
浅谈Vue.use的使用
2018/08/29 Javascript
JavaScript数组、json对象、eval()函数用法实例分析
2019/02/21 Javascript
Vue实现Layui的集成方法步骤
2020/04/10 Javascript
vue Element左侧无限级菜单实现
2020/06/10 Javascript
在Python程序和Flask框架中使用SQLAlchemy的教程
2016/06/06 Python
Python的Flask站点中集成xhEditor文本编辑器的教程
2016/06/13 Python
Python2.7环境Flask框架安装简明教程【已测试】
2018/07/13 Python
对python 多个分隔符split 的实例详解
2018/12/20 Python
django在开发中取消外键约束的实现
2020/05/20 Python
整理HTML5中表单的常用属性及新属性
2016/02/19 HTML / CSS
护理专业应届毕业生推荐信
2013/11/15 职场文书
社区党员先进事迹
2014/01/22 职场文书
学习决心书
2014/03/11 职场文书
2014年少先队工作总结
2014/12/03 职场文书
2015年三万活动总结
2015/03/25 职场文书
《游戏公平》教学反思
2016/02/20 职场文书
vue项目打包后路由错误的解决方法
2022/04/13 Vue.js