summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/scripts/drag.js22
-rw-r--r--lib/scripts/events.js4
2 files changed, 8 insertions, 18 deletions
diff --git a/lib/scripts/drag.js b/lib/scripts/drag.js
index fa249a996..254eab4a6 100644
--- a/lib/scripts/drag.js
+++ b/lib/scripts/drag.js
@@ -50,8 +50,8 @@ var drag = {
this.oX = parseInt(this.obj.style.left);
this.oY = parseInt(this.obj.style.top);
- this.eX = drag.evX(e);
- this.eY = drag.evY(e);
+ this.eX = e.pageX;
+ this.eY = e.pageY;
var _this = this;
this.mousehandlers = [function (e) {return _this.drag(e);}, function (e) {return _this.stop(e);}];
@@ -80,23 +80,9 @@ var drag = {
*/
drag: function(e) {
if(this.obj) {
- this.obj.style.top = (this.evY(e)+this.oY-this.eY+'px');
- this.obj.style.left = (this.evX(e)+this.oX-this.eX+'px');
+ this.obj.style.top = (e.pageY+this.oY-this.eY+'px');
+ this.obj.style.left = (e.pageX+this.oX-this.eX+'px');
}
},
- /**
- * Returns the X position of the given event.
- */
- evX: function(e){
- return (e.pageX) ? e.pageX : e.clientX + document.body.scrollTop; //fixme shouldn't this be scrollLeft?
- },
-
- /**
- * Returns the Y position of the given event.
- */
- evY: function(e){
- return (e.pageY) ? e.pageY : e.clientY + document.body.scrollTop;
- }
-
};
diff --git a/lib/scripts/events.js b/lib/scripts/events.js
index e7526ced7..2ea619085 100644
--- a/lib/scripts/events.js
+++ b/lib/scripts/events.js
@@ -55,6 +55,10 @@ function fixEvent(event) {
event.stopPropagation = fixEvent.stopPropagation;
// fix target
event.target = event.srcElement;
+ // fix coords
+ event.pageX = (typeof event.pageX !== 'undefined') ? event.pageX : event.clientX + document.body.scrollTop;
+ event.pageY = (typeof event.pageY !== 'undefined') ? event.pageY : event.clientY + document.body.scrollTop;
+
return event;
};
fixEvent.preventDefault = function() {