代码1
<script language="javascript" type="text/javascript">
var selObj = null //是否选中控件
, selX
, selY;
function movedown(obj) {
selObj = obj;
obj.style.background = 'Wheat';
selX = event.clientX - obj.style.left.replace("px", "");
selY = event.clientY - obj.style.top.replace("px", "");
}
function moveup(obj) {
selObj = null;
obj.style.background = 'Gray';
}
function move(obj) {
if (selObj == null) return;
obj.style.left = event.clientX - selX; //当鼠标拖动时,控件移动,鼠标拖动值应减掉间隙值
obj.style.top = event.clientY - selY;
}
</script>
代码2
<script type="text/javascript">
var dragapproved = false
var z, x, y
function move() {
if (event.button == 1 && dragapproved) {
z.style.pixelLeft = temp1 + event.clientX - x;
z.style.pixelTop = temp2 + event.clientY - y;
return false;
}
}
function drags() {
if (!document.all)
return;
if (event.srcElement.className == "drag") {
dragapproved = true;
z = event.srcElement;
temp1 = z.style.pixelLeft;
temp2 = z.style.pixelTop;
x = event.clientX;
y = event.clientY;
document.onmousemove = move;
}
}
document.onmousedown = drags;
document.onmouseup = new Function("dragapproved=false");
</script>
说明(代码1和代码2都是实现控件拖动功能的,其中代码1对应的控件需要使用绝对定位,代码2对应的控件需要使用相对定位)
问题:
1.在鼠标拖动较慢时,代码1对lable和没有设置src属性的图片是没有问题的,但是对图片设置src属性后,图片就只移动一点,然后就动不了了,当松开鼠标后,图片会向图片拖动方向再移一点,鼠标拖动较快时,鼠标会移出控件,控件跟不上鼠标的速度
2.代码2无论鼠标移动多快,控件都不会脱离鼠标,非常正确可靠。
3.代码2把move里的return false 去掉是不正常的(不知道为什么)
求解释!求解释!求解释!求解释!求解释!求解释!求解释!求解释!求解释!求解释!求解释!问题补充:
<script language="javascript" type="text/javascript">
var selObj = null //是否选中控件
, selX
, selY;
function movedown(obj) {
selObj = obj;
obj.style.background = 'Wheat';
selX = event.clientX - obj.style.left.replace("px", "");
selY = event.clientY - obj.style.top.replace("px", "");
}
function moveup(obj) {
selObj = null;
obj.style.background = 'Gray';
}
function move(obj) {
if (selObj == null) return;
obj.style.left = event.clientX - selX; //当鼠标拖动时,控件移动,鼠标拖动值应减掉间隙值
obj.style.top = event.clientY - selY;
}
</script>
代码2
<script type="text/javascript">
var dragapproved = false
var z, x, y
function move() {
if (event.button == 1 && dragapproved) {
z.style.pixelLeft = temp1 + event.clientX - x;
z.style.pixelTop = temp2 + event.clientY - y;
return false;
}
}
function drags() {
if (!document.all)
return;
if (event.srcElement.className == "drag") {
dragapproved = true;
z = event.srcElement;
temp1 = z.style.pixelLeft;
temp2 = z.style.pixelTop;
x = event.clientX;
y = event.clientY;
document.onmousemove = move;
}
}
document.onmousedown = drags;
document.onmouseup = new Function("dragapproved=false");
</script>
说明(代码1和代码2都是实现控件拖动功能的,其中代码1对应的控件需要使用绝对定位,代码2对应的控件需要使用相对定位)
问题:
1.在鼠标拖动较慢时,代码1对lable和没有设置src属性的图片是没有问题的,但是对图片设置src属性后,图片就只移动一点,然后就动不了了,当松开鼠标后,图片会向图片拖动方向再移一点,鼠标拖动较快时,鼠标会移出控件,控件跟不上鼠标的速度
2.代码2无论鼠标移动多快,控件都不会脱离鼠标,非常正确可靠。
3.代码2把move里的return false 去掉是不正常的(不知道为什么)
求解释!求解释!求解释!求解释!求解释!求解释!求解释!求解释!求解释!求解释!求解释!问题补充:
#tt{
position: absolute;
border: 1px solid red;
width:200px;height:200px;
background-color: #ddd;
}
</style>
<div id="tt"></div>
<script type="text/javascript">
function move(e){
var oe=e||window.event;
var $this = this;
var startX = oe.clientX - $this.offsetLeft;
var startY = oe.clientY - $this.offsetTop;
document.onmousemove = function (e) {
var oe = e || window.event;
$this.style.left = oe.clientX - startX + "px";
$this.style.top = oe.clientY - startY + "px";
};
document.onmouseup = function () {
document.onmousemove = null;
document.onmouseup = null;
if ($this.releaseCapture) {
$this.releaseCapture();
}
};
if ($this.setCapture) {
$this.setCapture();
}
}
document.getElementById("tt").onmousedown=move;
</script>