js 高手看一下(拖动问题) 5

代码1<scriptlanguage="javascript"type="text/javascript">varselObj=null//是否选中控件,selX,sel... 代码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无论鼠标移动多快,控件都不会脱离鼠标,非常正确可靠。求解释!求解释!求解释!求解释!求解释!求解释!求解释!求解释!求解释!求解释!求解释!
代码2把move里的return false 去掉是不正常的(不知道为什么)
展开
 我来答
百度网友13ab629
2012-11-06 · TA获得超过121个赞
知道答主
回答量:34
采纳率:0%
帮助的人:36.1万
展开全部
你的代码1不全,不过据我推测,应该是1里检测的事件是鼠标在控件上的移动;而2里是鼠标在document上的移动。当移动速度过快时,鼠标会脱离控件的范围,就导致了1里的方法暂时失效了,而2没问题,因为鼠标没有脱离整个document。
追问
我试过把document改成document.getElementbyId也不会有任何问题
追答
我对照了下我以前写过的,好像确实是用新的鼠标坐标减去老的鼠标坐标再加上控件原位置的=。=好像没错呀
obj.style.left = event.clientX - selX + "px";
obj.style.top = event.clientY - selY + "px";
你改下function move里的这两句,加上单位试试
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
七鑫易维信息技术
2024-09-02 广告
Play Video 七鑫易维是致力于机器视觉和人工智能领域的高新科技企业,迄今已专注眼球追踪技术的研发、创新与应用超过14年,拥有完全自主知识产权,全球专利总量655余项。 作为眼球追踪技术领域的全球知名品牌,七鑫易维的产品体系覆盖眼动分... 点击进入详情页
本回答由七鑫易维信息技术提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式