鼠标拖移对象
昨天在某位大仙博客上看到他在BS那些前端水平差的浮燥人士,BS那些“连用原生JS写拖放效果的能力都没有的人”。怕被BS,这里小写一个拖放效果练习一下。。。这里贴出代码:
js/move.js 文件
//将一个绝对定位的对象封装成可拖动对象
function MoveControl(c){
/* 考虑浏览器兼容性,这里编写一个获取事件对象的公共方法 */
c.getEvent=function(e){
if(!e){
e=event;
e.pageX=event.x;
e.pageY=event.y;
}
return e;
}
/* 当鼠标在该对象上按下,记录按下时鼠标的位置,并且修改监听锁,开始监听 */
c.onmousedown=function(e){
e=this.getEvent(e);
this.IX=e.pageX;
this.IY=e.pageY;
this.moveKey=true;
}
/* 当鼠标在对象上移动时,同时移动该对象 */
c.onmousemove=function(e){
if(!this.moveKey) return;
e=this.getEvent(e);
this.style.top=parseInt(this.style.top?this.style.top:0)+(e.pageY-this.IY)+"px";
this.style.left=parseInt(this.style.left?this.style.left:0)+(e.pageX-this.IX)+"px";
this.IX=e.pageX;
this.IY=e.pageY;
}
/* 当鼠标在对象上松开时,停止移动该对象 */
c.onmouseup=function(e){
this.moveKey=false;
}
}
HTML文件 child.html
<!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>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>无标题文档</title>
<script src="js/move.js"></script>
<script type="text/javascript">
window.onload=function(){
var d = document.getElementById("d");
MoveControl(d);
}
</script>
</head>
<body>
<div id="d" style="width:100px; height:100px; background:#555; position:fixed;"></div>
</body>
</html>
OVER...
非常简单,下面看看效果:
IE8里:
chrome里:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现