JS实现拖拽元素时与另一元素碰撞检测


Posted in Javascript onAugust 27, 2020

本文给大家分享一个用原生JS实现拖拽元素时与另个一元素碰撞检测的小Demo,效果如下:

JS实现拖拽元素时与另一元素碰撞检测

实现代码如下, 欢迎大家复制粘贴。

<!DOCTYPE html>
<html>
 
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <title>原生JS实现拖拽元素时与另个一元素碰撞检测</title>
  <style>
    #div1 {
      width: 100px;
      height: 100px;
      background: red;
      position: absolute;
      z-index: 2;
    }
 
    #div2 {
      width: 100px;
      height: 100px;
      background: yellow;
      position: absolute;
      left: 230px;
      top: 220px;
      z-index: 1;
    }
  </style>
  <script>
    window.onload = function () {
      var oDiv = document.getElementById('div1');
      var oDiv2 = document.getElementById('div2');
      // 鼠标按下时
      oDiv.onmousedown = function (ev) {
 
        var oEvent = ev || event;
        var disX = oEvent.clientX - oDiv.offsetLeft;
        var disY = oEvent.clientY - oDiv.offsetTop;
        // 鼠标移动时
        document.onmousemove = function (ev) {
 
          var oEvent = ev || event;
 
          oDiv.style.left = oEvent.clientX - disX + 'px';
          oDiv.style.top = oEvent.clientY - disY + 'px';
 
          var l1 = oDiv.offsetLeft;
          var r1 = oDiv.offsetLeft + oDiv.offsetWidth;
          var t1 = oDiv.offsetTop;
          var b1 = oDiv.offsetTop + oDiv.offsetHeight;
 
          var l2 = oDiv2.offsetLeft;
          var r2 = oDiv2.offsetLeft + oDiv2.offsetWidth;
          var t2 = oDiv2.offsetTop;
          var b2 = oDiv2.offsetTop + oDiv2.offsetHeight;
 
          // 碰撞检测的规则
          if (r1 < l2 || l1 > r2 || b1 < t2 || t1 > b2) {
            // 如果没有碰到
            oDiv2.style.background = 'yellow';
 
          } else {
            // 如果碰到了
            oDiv2.style.background = 'green';
          }
        };
        // 鼠标抬起时
        document.onmouseup = function () {
 
          document.onmousemove = null;
          document.onmouseup = null;
        };
      };
    };
  </script>
</head>
 
<body>
  <div id="div1"></div>
  <div id="div2"></div>
</body>
 
</html>

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

Javascript 相关文章推荐
JavaScript中的Location地址对象
Jan 16 Javascript
js call方法详细介绍(js 的继承)
Nov 18 Javascript
js使用循环清空某个div中的input标签值
Sep 29 Javascript
node.js中的fs.read方法使用说明
Dec 17 Javascript
Angular2库初探
Mar 01 Javascript
Angular 2.0+ 的数据绑定的实现示例
Aug 09 Javascript
js实现网页的两个input标签内的数值加减(示例代码)
Aug 15 Javascript
使用Vue构建可重用的分页组件
Mar 26 Javascript
详解vue 项目白屏解决方案
Oct 31 Javascript
JS实现的简单tab切换功能完整示例
Jun 20 Javascript
js实现小球在页面规定的区域运动
Jun 16 Javascript
JS操作JSON常用方法(10w阅读)
Dec 06 Javascript
js实现QQ邮箱邮件拖拽删除功能
Aug 27 #Javascript
Bootstrap告警框(alert)实现弹出效果和短暂显示后上浮消失的示例代码
Aug 27 #Javascript
javascript操作向表格中动态加载数据
Aug 27 #Javascript
Vue为什么要谨慎使用$attrs与$listeners
Aug 27 #Javascript
js实现批量删除功能
Aug 27 #Javascript
js利用拖放实现添加删除
Aug 27 #Javascript
基于jquery实现彩色投票进度条代码解析
Aug 26 #jQuery
You might like
用PHP与XML联手进行网站编程代码实例
2008/07/10 PHP
解析php中两种缩放图片的函数,为图片添加水印
2013/06/14 PHP
Yii PHP Framework实用入门教程(详细介绍)
2013/06/18 PHP
yii框架表单模型使用及以数组形式提交表单数据示例
2014/04/30 PHP
laravel5.6 框架操作数据 Eloquent ORM用法示例
2020/01/26 PHP
使用jQuery实现dropdownlist的联动效果(sharepoint 2007)
2011/03/30 Javascript
中止javascript执行的方法
2014/02/14 Javascript
在jquery中的ajax方法怎样通过JSONP进行远程调用
2014/04/04 Javascript
浅析node连接数据库(express+mysql)
2015/11/30 Javascript
js实现卡片式项目管理界面UI设计效果
2015/12/08 Javascript
详解javascript事件绑定使用方法
2016/10/20 Javascript
JS实现点击网页判断是否安装app并打开否则跳转app store
2016/11/18 Javascript
详解Bootstrap各式各样的按钮(推荐)
2016/12/13 Javascript
require.js与bootstrap结合实现简单的页面登录和页面跳转功能
2017/05/12 Javascript
vue+ElementUI实现订单页动态添加产品数据效果实例代码
2017/07/13 Javascript
jQuery实现点击DIV同时点击CheckBox,并为DIV上背景色的实例
2017/12/18 jQuery
Vue结合Video.js播放m3u8视频流的方法示例
2018/05/04 Javascript
微信小程序地图导航功能实现完整源代码附效果图(推荐)
2019/04/28 Javascript
解决PyCharm import torch包失败的问题
2018/10/13 Python
python将txt文件读入为np.array的方法
2018/10/30 Python
python读取.mat文件的数据及实例代码
2019/07/12 Python
使用Python的Turtle库绘制森林的实例
2019/12/18 Python
Python的轻量级ORM框架peewee使用教程
2021/02/05 Python
基于注解实现 SpringBoot 接口防刷的方法
2021/03/02 Python
美国最大的网络男装服装品牌:Bonobos
2017/05/25 全球购物
美国亚马逊旗下男装网站:East Dane(支持中文)
2019/09/25 全球购物
函数指针的定义是什么
2016/08/14 面试题
交通事故检查书范文
2014/01/30 职场文书
经营理念口号
2014/06/21 职场文书
企业爱岗敬业演讲稿
2014/09/04 职场文书
临时用工协议书范本
2014/10/29 职场文书
餐厅收银员岗位职责
2015/04/07 职场文书
导游词之无锡梅园
2019/11/28 职场文书
浅谈Python3中datetime不同时区转换介绍与踩坑
2021/08/02 Python
Mybatis-Plus进阶分页与乐观锁插件及通用枚举和多数据源详解
2022/03/21 Java/Android
浅谈MySql update会锁定哪些范围的数据
2022/06/25 MySQL