完美实现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 相关文章推荐
获取URL地址中的文件名和参数的javascript代码
Sep 02 Javascript
javascript prototype原型操作笔记
Dec 07 Javascript
jquery下利用jsonp跨域访问实现方法
Jul 29 Javascript
js实现简单div拖拽功能实例
May 12 Javascript
jquery遍历table的tr获取td的值实现方法
May 19 Javascript
JS实现的base64加密解密操作示例
Apr 18 Javascript
angularJs复选框checkbox选中进行ng-show显示隐藏的方法
Oct 08 Javascript
详解angular2.x创建项目入门指令
Oct 11 Javascript
Vue 进阶之路(三)
Apr 18 Javascript
js实现适配移动端的拖动效果
Jan 13 Javascript
微信小程序实现音乐播放页面布局
Dec 11 Javascript
Vue在H5 项目中使用融云进行实时个人单聊通讯
Dec 14 Vue.js
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 addslashes及其他清除空格的方法是不安全的
2012/01/25 PHP
PHP图片上传代码
2013/11/04 PHP
codeigniter中实现一次性加载多个view的方法
2015/03/20 PHP
php 广告点击统计代码(php+mysql)
2018/02/21 PHP
Javascript 不能释放内存.
2006/09/07 Javascript
锋利的jQuery 第三章章节总结的例子
2010/03/23 Javascript
javascript forEach通用循环遍历方法
2010/10/11 Javascript
仅IE6/7/8中innerHTML返回值忽略英文空格的问题
2011/04/07 Javascript
MultiSelect左右选择控件的设计与实现介绍
2013/06/08 Javascript
jquery制作图片时钟特效
2020/03/30 Javascript
微信小程序 UI与容器组件总结
2017/02/21 Javascript
详解VUE中v-bind的基本用法
2017/07/13 Javascript
基于JS抓取某高校附近共享单车位置 使用web方式展示位置变化代码实例
2019/08/27 Javascript
python中的实例方法、静态方法、类方法、类变量和实例变量浅析
2014/04/26 Python
Django验证码的生成与使用示例
2017/05/20 Python
Python3调用微信企业号API发送文本消息代码示例
2017/11/10 Python
python如何将图片转换为字符图片
2020/08/19 Python
python简单鼠标自动点击某区域的实例
2019/06/25 Python
python3.6+selenium实现操作Frame中的页面元素
2019/07/16 Python
详解用python生成随机数的几种方法
2019/08/04 Python
基于CSS3的CSS 多栏(Multi-column)实现瀑布流源码分享
2014/06/11 HTML / CSS
史泰博(Staples)中国官方网站:办公用品一站式采购
2016/09/05 全球购物
The Beach People美国:澳洲海滨奢华品牌
2018/07/05 全球购物
Deux par Deux官方网站:设计师童装
2020/01/03 全球购物
什么是符号链接,什么是硬链接?符号链接与硬链接的区别是什么?
2013/05/03 面试题
模具毕业生推荐信
2014/02/15 职场文书
员工薪酬激励方案
2014/06/13 职场文书
2014年减负工作总结
2014/12/10 职场文书
学校元旦晚会开场白
2015/05/29 职场文书
vue 实现上传组件
2021/05/31 Vue.js
使用react+redux实现计数器功能及遇到问题
2021/06/02 Javascript
Jedis操作Redis实现模拟验证码发送功能
2021/09/25 Redis
详解jQuery的核心函数和事件处理
2022/02/18 jQuery
python自动化测试之Selenium详解
2022/03/13 Python
Python实现Excel文件的合并(以新冠疫情数据为例)
2022/03/20 Python
「地球外少年少女」BD发售宣传CM公开
2022/03/21 日漫