私はどういうわけかこれを修正するのに苦労しています。jqueryで使用してDIVをパンしようとしています。ロジックは非常に単純です。mouseDown で X と Y を取得し、mouseMove で X と Y を減算して div をパンします。
しかし、どういうわけか、div はより速く動いており、その背後にある理由を理解できませんでした。
$('div').on('mousedown', function(e) {
self.panStartX = e.pageX;
self.panStartY = e.pageY;
self.mouseDown = true;
}).on('mousemove', function(e) {
if (self.mouseDown) {
var pageTop = parseInt($(this).css('top'), false) || 0;
var pageLeft = parseInt($(this).css('left'), false) || 0;
self.panEndX = e.pageX;
self.panEndY = e.pageY;
if (self.panStartY > self.panEndY) {
self.panTop = self.panEndY - self.panStartY;
pageTop+= self.panTop;
$(this).css({ top: pageTop });
} else {
// Down
self.panTop = self.panStartY - self.panEndY;
pageTop-= self.panTop;
if (pageTop > 42) pageTop = 42;
$(this).css({ top: pageTop });
}
}
}).on('mouseup', function(e) {
self.mouseDown = false;
});
ここにデモがあります:http://jsfiddle.net/hvUVy/