完美实现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 相关文章推荐
jQuery.Validate验证库的使用介绍
Apr 26 Javascript
jquery中animate的stop()方法作用实例分析
Jan 30 Javascript
jQuery模拟新浪微博首页滚动效果的方法
Mar 11 Javascript
jQuery取消ajax请求的方法
Jun 09 Javascript
解析JavaScript的ES6版本中的解构赋值
Jul 28 Javascript
jQuery的实例及必知重要的jQuery选择器详解
May 20 Javascript
走进javascript——不起眼的基础,值和分号
Feb 24 Javascript
jquery.uploadView 实现图片预览上传功能
Aug 10 jQuery
Vue.js实现分页查询功能
Nov 15 Javascript
js合并两个数组生成合并后的key:value数组
May 09 Javascript
js统计页面上每个标签的数量实例代码
May 29 Javascript
微信小程序开发背景图显示功能
Aug 08 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 404错误页面实现代码
2009/06/22 PHP
php 读取文件乱码问题
2010/02/20 PHP
php中获取远程客户端的真实ip地址的方法
2011/08/03 PHP
CodeIgniter中使用Smarty3基本配置
2015/06/29 PHP
PHP优化之批量操作MySQL实例分析
2020/04/23 PHP
JavaScript delete操作符应用实例
2009/01/13 Javascript
实用的JS正则表达式(手机号码/IP正则/邮编正则/电话等)
2013/01/11 Javascript
jquery 利用show和hidden实现级联菜单示例代码
2013/08/09 Javascript
js控制页面控件隐藏显示的两种方法介绍
2013/10/09 Javascript
JavaScript避免内存泄露及内存管理技巧
2014/09/05 Javascript
javascript实现跨域的方法汇总
2015/06/25 Javascript
很全面的JavaScript常用功能汇总集合
2016/01/22 Javascript
基于chosen插件实现人员选择树搜索自动筛选功能
2016/09/24 Javascript
H5实现仿flash效果的实现代码
2017/09/29 Javascript
使用xampp将angular项目运行在web服务器的教程
2019/09/16 Javascript
在layui中对table中的数据进行判断(0、1)转换为提示信息的方法
2019/09/28 Javascript
Vue实现开心消消乐游戏算法
2019/10/22 Javascript
vue与django集成打包的实现方法
2019/11/11 Javascript
Laravel 如何在blade文件中使用Vue组件的示例代码
2020/06/28 Javascript
jQuery+ajax实现文件上传功能
2020/12/22 jQuery
详解python3百度指数抓取实例
2016/12/12 Python
详解Python开发中如何使用Hook技巧
2017/11/01 Python
解决tensorflow测试模型时NotFoundError错误的问题
2018/07/26 Python
Python随机生成身份证号码及校验功能
2018/12/04 Python
Python基础之函数原理与应用实例详解
2020/01/03 Python
python读取ini配置的类封装代码实例
2020/01/08 Python
keras中的backend.clip用法
2020/05/22 Python
Python 微信公众号文章爬取的示例代码
2020/11/30 Python
一款纯css3实现简单的checkbox复选框和radio单选框
2014/11/05 HTML / CSS
详解CSS3的box-shadow属性制作边框阴影效果的方法
2016/05/10 HTML / CSS
波兰珠宝品牌:YES
2019/08/09 全球购物
iHerb俄罗斯:维生素、补品和天然产品
2020/07/09 全球购物
经典c++面试题六
2012/01/18 面试题
人事部岗位职责范本
2014/03/05 职场文书
项目委托协议书(最新)
2014/09/13 职场文书
介绍信格式样本
2015/05/05 职场文书