<Html>
<head>
<style>
*{margin: 0;padding: 0;}
</style>
<script type="text/javascript">
//函数加载入口
window.onload = function()
{
var oDiv1 = document.getElementById('div1');
var oDiv2 = document.getElementById("div2");
var offsetX = 0;
var offsetY = 0;
oDiv1.onmousedown = function(ev)
{
var oEvent = ev || window.event;
offsetX = oEvent.clientX - this.offsetLeft;
offsetY = oEvent.clientY - this.offsetTop;
//当鼠标移动
document.onmousemove = function(ev)
{
var oEvent = ev || window.event;
var l = oEvent.clientX - offsetX;
var r = oEvent.clientY - offsetY;
l <=0 && (l = 0);
l >= document.documentElement.clientWidth - oDiv1.offsetWidth && (l=document.documentElement.clientWidth - oDiv1.offsetWidth);
r <=0 && (r = 0);
r >= document.documentElement.clientHeight - oDiv1.offsetHeight&&(r=document.documentElement.clientHeight-oDiv1.offsetHeight);
var ol1 = oDiv1.offsetLeft;
var ol2 = oDiv1.offsetLeft + oDiv1.offsetWidth;
var ot1 = oDiv1.offsetTop;
var ot2 = oDiv1.offsetTop + oDiv1.offsetHeight;
var nl1 = oDiv2.offsetLeft;
var nl2 = oDiv2.offsetLeft + oDiv2.offsetWidth;
var nt1 = oDiv2.offsetTop;
var nt2 = oDiv2.offsetTop + oDiv2.offsetHeight;
//碰撞检测
if (!(ol1 > nl2 || ol2 < nl1 || ot2 < nt1 || ot1 > nt2 ))
{
oDiv2.style.backgroundColor="pink";
}
//(ol1 < nl2 || ol2 > nl1 || ot1 < nt2 || ot2 > nt1) && (alert(1));
oDiv1.style.left = l +'px';
oDiv1.style.top = r +'px';
};
document.onmouseup = function()
{
document.onmouseup = null;
document.onmousemove = null;
this.releaseCapture && (this.releaseCapture());
};
this.setCapture && (this.setCapture());
return false; //取消默认事件
}
var Toos = {
//拖动函数
Drag:function(obj)
{
var offsetX = offsetY =0;
obj.drag.onmousedown = function(ev)
{
var oEvent = ev || window.event;
offsetX = oEvent.clientX - this.offsetLeft;
offsetY = oEvent.clientY - this.offsetTop;
document.onmousemove = function(ev){
var oEvent = ev || window.event;
obj.drag.style.left = oEvent.clientX - offsetX +'px';
obj.drag.style.top = oEvent.clientY - offsetY +'px';
}
document.onmouseup = function(){
document.onmousemove = null;
document.onmouseup = null;
//IE问题
this.releaseCapture && this.releaseCapture();
};
//IE问题
this.setCapture && this.setCapture();
return false;
}
}
};
Toos.Drag({drag:document.getElementById("div1")});
};
</script>
</head>
<body>
<div style="width:100px;height:100px;border:solid 1px;position:absolute;background:red;" id="div1"></div>
<div style="width:100px;height:100px;border:solid 1px;position:absolute;background:blue; left:300px;top:300px;" id="div2"></div>
</body>
</html>相关推荐
动作识别(三)Win10复现OpenPose1.7.0+ST-GCN代码
动作识别(三)Win10复现OpenPose1.7.0+ST-GCN代码1.Win10系统配置OpenPose1.7.0的Python API 本人最近在研究基于骨架的动作识别方法,有幸看到端到端的ST-GCN算法,于是决定自己复现一下。(具体原理这里不介绍,大家自行查阅,比如Openpose是个啥?ST-GCN又是个啥?) 1.Win10系统配置OpenPose1.7.0的Python API 安装步骤: (1) ...
javascript拖拽封装
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <sty
【一步到位】Android Studio 实现安卓连接阿里云物联网云平台
最新版本目前是Android Studio Iguana | 2024.1.2,你可以到官网上去找之前的版本,手上有工作项目的不要去轻易尝试,说不定你就编译失败了,失败了也不要担心,解决就可以了。
js完美拖拽与碰撞检测
拖拽与碰撞检测 点个赞啊,靓仔! 拖拽 原理分析 对于拖拽一个div盒子,首先我们需要将鼠标移动到盒子上,然后按住鼠标左键,移动鼠标到目标位置,再松开鼠标,对于这一过程的分析, 显然需要三个鼠标事件: 按住鼠标:onmousedown 移动鼠标:onmousemove 松开鼠标:onmouseup 实现步骤 1、**鼠标按下时:**我们获取鼠标当前所在的位置距离页面左边界与上边界的距离,分别减去盒子距离页面左边界与上边界的值,这样我们 就得到了鼠标距离盒子左边界与上边界的值; 2、**鼠标移动时:**我们
基于Python适用于YOLO目标检测算法的图片数据增强处理
为了增强模型的鲁棒性以及数据的丰富性,同 时为了防止由于数据过少发生过拟合,本设计对数 据集进行数据增强处理,包括随机亮度调节、随机 对比度调节、随机饱和度调节、加入高斯噪声、水 平翻转、运动模糊和旋转 15°
告别手动脚本!用TSMaster Python小程序5分钟搞定CAN报文自动发送
本文介绍了如何使用TSMaster的Python小程序功能快速实现CAN报文自动发送,大幅提升汽车电子测试效率。通过简洁的Python代码示例,展示了如何替代传统手动操作和复杂C脚本,实现周期性发送、动态修改报文内容等常见需求,帮助工程师5分钟内完成自动化配置。
js拖拽碰撞
拖拽碰撞 当拖动图片时,碰到页面中的天蓝色盒子,盒子会由天蓝色变成黄色。 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale...
手把手教你学Simulink——基于Simulink的无感FOC(滑模观测器+PLL)实战
摘要: 本文详细介绍了基于Simulink的无感FOC(滑模观测器+PLL)实现方法。主要内容包括:1)SMO+PLL原理,通过滑模观测器估算反电动势,结合PLL抑制抖振;2)系统架构,替代编码器信号;3)Simulink建模流程,涵盖Clarke变换、SMO离散化实现、PLL设计等关键步骤;4)参数整定指南和工程实践要点,如启动策略和故障处理。该方法具有成本低、可靠性高的优势,适用于家电、电动车等场景,仿真结果显示角度误差±5°,速度动态跟随良好。文章还提供了调试建议和常见问题解决方案。
js拖拽封装
废话不多说,直接上代码: drag: function (id) { let isDown = false; let idObj = document.getElementById(id); let _this; // 缓存this let x, y, l, t; idObj.onmousedown = functio...
一文读懂 SAP BTP Application Router 的 Resource Files:从 xs-app.json 到本地开发的默认设置
本文详解SAP BTP中Application Router的资源文件配置与本地开发实践。核心包括:xs-app.json定义路由规则与安全策略,package.json声明依赖与启动脚本,resources/存放静态资源,default-services.json和local-destinations.json用于本地模拟云服务。文章通过真实案例展示如何配置静态资源直出、反向代理后端服务,并强调本地开发时的注意事项与常见问题解决路径。关键配置均提供示例代码,帮助开发者快速实现业务应用的部署与联调。
海思3403烧结、复用及mic输入
3403调试的第一步是版本烧结,版本烧结经常遇到问题,本文记录总结遇到的各种问题。
JS里面几个实用的封装函数
一滚轮事件的封装函数 function MouseWheelHandle (obj,handle){ var info = navigator.userAgent; var down = null;//用来记录滚轮的上下,down=true表示向下 if(info.indexOf("Firefox") !=-1){ obj.addEventLi
ADC的有效位数(ENOB)、信噪比(SNR)和无杂散动态范围(SFDR)——详细分析
设计提示(从文本):选择ADC时,看数据手册的SNR、ENOB、SFDR vs 频率图。减小抖动:用低抖动时钟、优化PCB、电源滤波。对于大信号:关注SFDR(失真);小信号:关注SNR/ENOB(噪声)。如果ENOB不足,用过采样或多ADC并行提升(但增加复杂度)。为什么这段重要?它解释了为什么高速ADC(如用于5G、雷达)的规格那么贵:抖动和失真限制了高频性能。理解这些,能帮你避免设计陷阱。
元素碰撞检测原理及实现
元素碰撞检测原理及实现 我们知道当鼠标在元素上移入移出,可以使用hover属性来改变元素,如果是元素与元素碰撞呢?应该怎么 操作呢?这个时候依然要使用我们之前介绍过的元素拖拽的效果。 原理:先上图 绿色元素是固定元素(div2),红色元素(div1)是拖拽的元素。将红元素拖拽碰到绿色元素时,绿色元素背景颜色发生改变。 1、按照上图将整个空间划分为九宫格形式。div2在空间5的...
efm32 入门.pdf
本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。
汉书HE8,好用的汇编代码编写工具
汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大
随手笔记10-拖拽效果-碰撞检测-简单封装动画函数
思路: 1.拖拽效果必须鼠标按下(mousedown),切鼠标移动(mousemove )执行代码,鼠标弹起(mouseup)解除事件 2.鼠标的坐标减去 鼠标在盒子内的坐标, 才是拖拽目标真正要移动的位置 3.鼠标移动和弹起事件如果加给小盒子,那么在快速移动鼠标的时候会无法解绑事件,所以为了用户体验度,把这两个事件加给文档(document) 4.判断物体移动边界,小盒子最大移动距离=父元素(这里用当前窗口位置)-小盒子的宽高,然后分别判断他们最大的移动距离,针对边界值分别进行处理 5.如果拖拽目标是i.
ET2012新版免狗免安装绿色软件
ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,
拖拽、全局捕获、多物体运动、碰撞检测、 运动的封装、多物体运动、减速运动、回调函数
拖拽 <style> div { width: 100px; height: 100px; background: deeppink; position: absolute; left: 50px; top: 50px; } </style> </head> <body>
pscad IEEE标准系统搭建说明
pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。
如何给图片赋值_JS拖拽专题(四)——「实战」揭秘那些图片移位的本质究竟是什么?...
欢迎来到我的JS拖拽专题系列文章,更多精彩内容持续更新中,欢迎关注 :)上一小节我们说到了自定义的滚动条的基本实现原理,通过一个拖拽操作去控制另外一个dom的变化。我们找到其中的关系系数k,从而解决实际需求~本章目标在web开发中,常见的dom的布局转换拖拽过程中dom中的碰撞检测拖拽过程中两点之间的距离的计算,以及如何求得最小距离。在传统的web开发过程中,那些炫酷的效果看上去高大上,仔细分析,...
碰撞检测
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <style> *{ padding:
javascript事件(三)(实现拖拽)
一.拖拽的原理:选择元素时(鼠标按下),保存鼠标的位置和元素位置的差值(以保证鼠标拖住元素移动时相对于元素的位置固定);移动元素时(鼠标移动),不停地给元素位置赋值(当前鼠标位置减去保存的差值);释放元素时(鼠标抬起),取消移动事件。二.可能会遇到的问题 1.若移动速度太快脱离元素时事件就不会执行了; 2.为了避免冒泡,onmousemove事件放在document上就可以了; 3.为了避免当
div碰撞
需求:拖动两个元素,当四个边缘碰撞到时,div样式改变 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0">...
程序猿HTML5与原生javascript开发高级拖拽照片墙
点击查看照片墙动图特效如何提高javascript逻辑思维?如何开发特效?javascript课题:高级原生javascript拖拽照片墙知识点:HTML/CSS布局,兼容性处理 原生javascript DOM操作,鼠标拖拽功能, 碰撞检测,勾股定理计算最小距离,原生javascript运动框架封装, 面向过程函数式封装思维。2017就业形势分析等PS:这个特效对于布局的要求并不高,大部分学习w...
照片墙应用
<!DOCTYPE html> <html> <head> <style> * {margin:0; padding:0;} #ul1 {width:660px; position:relative; margin:10px auto;} #ul1 li {width:200px; height:150px; ...
jQuery拖拽--1
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <script src="vue/vue.2.5.js">&a
事件深入应用二
拖拽的封装<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>拖拽的问题</title> <style type="text/css"> #div1{width: 100px;height: 100px;background: #f00;position:absolute;}
Javascript事件
事件绑定---因为一个元素一次最多只能触发一个事件,但是有时候才需要多个事件按顺序执行,因此就有了attachEvent和addEventListener函数。 实例1-----绑定事件 1 <!doctype html> 2 <html> 3 <head> 4 <meta charset="utf-8"> 5 <ti...
拖拽封装、碰撞检测
拖拽封装 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv...
3041



被折叠的 条评论
为什么被折叠?



