JavaScript实现完美拖拽效果及return false用法详解
作者:小圆点时间:2026-10-22 06:29:08浏览:134
本文详细解析了JavaScript中实现完美拖拽效果的核心代码,重点讲解了return false在阻止系统默认事件中的作用。通过示例展示了如何处理鼠标移动事件、兼容不同浏览器的事件对象,以及动态创建和移除DOM节点的具体步骤,帮助开发者掌握拖拽功能的实现细节。
JavaScript拖拽效果与return false详解
本文分享了实现JavaScript拖拽效果的具体代码,并详细解释了return false的使用方法,供读者参考学习。
首先,return false可用于阻止默认事件,也就是系统的默认行为。例如,可以通过限制keycode的数值来限制textarea中的输入范围,或者通过oncontextmenu自定义页面右键菜单。
其次,在鼠标移动(mousemove)等事件中,必须传入一个参数以确保程序正常运行。为了兼容不同浏览器,获取事件对象的方法通常写作:var oEvent=ev||event;
第三,在DOM节点中创建新节点的方法如下所示:
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>
以上就是本文的全部内容,希望对大家的学习有所帮助,也欢迎大家继续支持本站。
作者最新文章
JS在setTimeout或Ajax回调中打开新标签页失败怎么处理
2026-11-05 15:50:12
JS直播协议选型:HLS、FLV与WebRTC的延迟与兼容性对比
2026-11-05 12:16:14
JS实现回到顶部:scrollTop赋值与浏览器兼容性处理
2026-11-04 23:43:35
JS使用classList动态添加、移除和切换CSS类名
2026-11-04 23:40:58
在 D3.js 中实现平滑过渡动画的技巧
2026-11-03 23:46:09
