[問題] IE 以js寫拖曳功能會lag
小弟我上網 google 了一些教學,用 javascript 實作了 div 的拖曳功能
但我發現,在背景可能有點複雜的情況下
ie 拖曳時會顯得 lag
而 ff 則還好
不知道有沒有辦法解決這個問題?
還是寫法不好?
先謝謝各位了
以下是我拖曳功能的原碼
--
var dragapproved = false;
var dragObj = null;
var imgRelativeTop;
var imgRelativeLeft;
function dragDrop(evt)
{
var e = evt || window.event;
dragObj.style.left = e.clientX - imgRelativeLeft -
parseInt(dragObj.style.marginLeft) + document.body.scrollLeft;
dragObj.style.top = e.clientY - imgRelativeTop -
parseInt(dragObj.style.marginTop) + document.body.scrollTop;
return false;
}
function beginDrag(evt, obj)
{
dragObj = obj;
if (dragapproved == false)
{
imgRelativeTop = evt.clientY - getIdTop(dragObj);
imgRelativeLeft = evt.clientX - getIdLeft(dragObj);
dragapproved = true;
}
document.onmousemove = dragDrop;
document.onmouseup = function() {
dragObj = null;
dragapproved = false;
document.onmousemove = null;
};
return false;
}
function getIdTop(tmpObj)
{
var obj = tmpObj;
var curTop = 0;
if (obj.offsetParent)
{
do
{
curTop += obj.offsetTop;
} while(obj = obj.offsetParent);
}
else if (obj.y)
curTop += obj.y;
return curTop;
}
function getIdLeft(tmpObj)
{
var obj = tmpObj;
var curLeft = 0;
if (obj.offsetParent)
{
do
{
curLeft += obj.offsetLeft;
} while(obj = obj.offsetParent);
}
else if (obj.x)
curLeft += obj.x;
return curLeft;
}
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 122.117.164.207
→
02/11 22:54, , 1F
02/11 22:54, 1F
→
02/11 22:57, , 2F
02/11 22:57, 2F
→
02/11 23:05, , 3F
02/11 23:05, 3F
※ 編輯: seoker 來自: 122.117.164.207 (02/11 23:43)
推
02/11 23:48, , 4F
02/11 23:48, 4F
→
02/12 00:28, , 5F
02/12 00:28, 5F
推
02/12 13:09, , 6F
02/12 13:09, 6F
→
02/12 20:59, , 7F
02/12 20:59, 7F
→
02/12 21:00, , 8F
02/12 21:00, 8F