<!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>
<style>
#div1 {width:100px; height:100px; background:red; position:absolute;}
</style>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<script>
window.οnlοad=function ()
{
var oDiv=document.getElementById('div1');
oDiv.οnmοusedοwn=function (ev)
{
var oEvent=ev||event;
var disX=oEvent.clientX-oDiv.offsetLeft;
var disY=oEvent.clientY-oDiv.offsetTop;
if(oDiv.setCapture)//IE下,事件捕获,将事件加在要拖动的div上,顺便解决拖动div时选中文字的问题
{
oDiv.οnmοusemοve=fnMove;
oDiv.οnmοuseup=fnUp;
oDiv.setCapture();
}
else
{
document.οnmοusemοve=fnMove;
document.οnmοuseup=fnUp;
}
function fnMove(ev)
{
var oEvent=ev||event;
oDiv.style.left=oEvent.clientX-disX+'px';
oDiv.style.top=oEvent.clientY-disY+'px';
}
function fnUp()
{
this.οnmοusemοve=null;
this.οnmοuseup=null;
if(this.releaseCapture)//IE下,释放捕获
{
this.releaseCapture();
}
}
return false;//FF下,阻止默认事件
};
};
</script>
</head>
<body>
asdfas
<div id="div1">
asdfs
</div>
zcvx
</body>
</html>
对拖拽的更新,解决了在拖动时会自动选择文字的不良体验,同时做了IE和FF的兼容版本,将他们封装成函数,减少多余的代码。
javascript拖拽的问题解决
最新推荐文章于 2021-06-03 21:07:18 发布