div를 드래그 할 때 아래 함수를 사용할 때 문제가 발생합니다. div의 일부 내용 (예 : 이미지 및 텍스트 블록)을 div로 드래그 할 때 지연됩니다.JavaScript 지연 div 지연
이상한 부분이 지연이 .. 왼쪽에서 오른쪽으로 만 위에서 아래로 드래그 할 때 발생되지
모든 아이디어를 어떻게이 기능의 수직 지연을 제거하는 것입니다?
function enableDragging(ele) {
var dragging = dragging || false,
x, y, Ox, Oy,
current;
enableDragging.z = enableDragging.z || 1;
var grabber = document.getElementById("wrapper");
grabber.onmousedown = function (ev) {
ev = ev || window.event;
var target = ev.target || ev.srcElement;
current = target.parentNode;
dragging = true;
x = ev.clientX + 2;
y = ev.clientY + 2;
Ox = current.offsetLeft;
Oy = current.offsetTop;
current.style.zIndex = ++enableDragging.z;
document.onmousemove = function (ev) {
ev = ev || window.event;
if (dragging == true) {
var Sx = parseFloat(ev.clientX) - x + Ox;
var Sy = parseFloat(ev.clientY) - y + Oy;
current.style.left = Math.min(Math.max(Sx, Math.min(viewport().width - Sx, 0)), viewport().width - current.offsetWidth) + "px";
current.style.top = Math.min(Math.max(Sy, Math.min(viewport().height - Sy, 0)), viewport().height - current.offsetHeight) + "px";
}
}
document.onselectstart = function() {
return false;
};
document.onmouseup = function (ev) {
ev = ev || window.event;
dragging && (dragging = false);
if (ev.preventDefault) {
ev.preventDefault();
}
}
document.body.style.MozUserSelect = "none";
document.body.style.cursor = "default";
return false;
};
}
function viewport() {
var e = window
, a = 'inner';
if (!('innerWidth' in window)) {
a = 'client';
e = document.documentElement || document.body;
}
return { width : e[ a+'Width' ] , height : e[ a+'Height' ] }
}
코드에 지연이 없습니다. 브라우저를 사용하려면 (http://jsfiddle.net/Bvp3z/) –
약간의 지연이 있지만 CSS 위치가있는 것 같습니다. 상대적인 위치에 따라 느려진다. (http://jsfiddle.net/N6A4q/). 나는 너의 이미지를 빌리겠다. @ 토마스. –
힘든시기입니다. Chrome과 Firefox에는 지체가 없습니다. –