吵吵   2011-03-03  阅读:2,571

使用js的拖动窗口或者一个层的时候,往往会出现这样一种情况:速度快一点的拖动onmousemove事件反应不过来,这样子当mousemove事件挣脱了这个窗口的时候。窗口就不动了,而且鼠标把下一层的内容给选定了。解决这个问题的办法就是onmouseup事件不能用该div的而应该用全局的:www.chaochaoblog.com
var relLeft;
var relTop;

var isMoving=false;

document.onmouseup = MouseUp;//使用整个页面的mouseup事件和mousemove事件
document.onmousemove = MouseMove;

function MouseUp(){
isMoving=false;//定义这个变量用来判定是否在移动
}
function MouseDown(){
isMoving=true;
relLeft = event.x – parseInt(document.getElementById(“pop_cart”).style.left);
relTop = event.y – parseInt(document.getElementById(“pop_cart”).style.top);

}
function MouseMove(){
if(isMoving==true)
{
document.getElementById(“pop_cart”).style.left=event.x-relLeft+”px”;
document.getElementById(“pop_cart”).style.top=event.y-relTop+”px”
} //www.chaochaoblog.com

}

<div align=”center” onmousedown=”MouseDown();” style=”cursor:move;”>购物车</div>

只在div中触发mousedown事件。这样子怎么拖动这个层都不会逃脱了。

吵吵微信朋友圈,请付款实名加入:

吵吵 吵吵

发表评论

电子邮件地址不会被公开。 必填项已用*标注