mirror of
https://github.com/scratchfoundation/paper.js.git
synced 2025-01-06 04:42:15 -05:00
Add Events.getOffset(), to return coordinates relative to the target element's position.
This commit is contained in:
parent
20f3460222
commit
342c5911c1
2 changed files with 18 additions and 4 deletions
|
@ -1,9 +1,6 @@
|
||||||
var Tool = this.Tool = ToolHandler.extend(new function() {
|
var Tool = this.Tool = ToolHandler.extend(new function() {
|
||||||
function viewToArtwork(event, document) {
|
function viewToArtwork(event, document) {
|
||||||
var x = event.pageX || event.clientX + document.documentElement.scrollLeft;
|
var point = Events.getOffset(event);
|
||||||
var y = event.pageY || event.clientY + document.documentElement.scrollTop;
|
|
||||||
// TODO: Remove canvas offset
|
|
||||||
var point = Point.create(x, y);
|
|
||||||
// TODO: always the active view?
|
// TODO: always the active view?
|
||||||
return document.activeView.viewToArtwork(point);
|
return document.activeView.viewToArtwork(point);
|
||||||
};
|
};
|
||||||
|
@ -68,6 +65,7 @@ var Tool = this.Tool = ToolHandler.extend(new function() {
|
||||||
},
|
},
|
||||||
|
|
||||||
setDocument: function(doc) {
|
setDocument: function(doc) {
|
||||||
|
// Remove old events first.
|
||||||
if (this._document)
|
if (this._document)
|
||||||
Events.remove(this._document.canvas, this.events);
|
Events.remove(this._document.canvas, this.events);
|
||||||
this._document = doc || paper.document;
|
this._document = doc || paper.document;
|
||||||
|
|
|
@ -24,5 +24,21 @@ var Events = {
|
||||||
obj.detachEvent('on' + type, func.bound);
|
obj.detachEvent('on' + type, func.bound);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
getPoint: function(event) {
|
||||||
|
return Point.create(
|
||||||
|
event.pageX || event.clientX + document.documentElement.scrollLeft,
|
||||||
|
event.pageY || event.clientY + document.documentElement.scrollTop
|
||||||
|
);
|
||||||
|
},
|
||||||
|
|
||||||
|
getOffset: function(event) {
|
||||||
|
var point = Events.getPoint(event);
|
||||||
|
// Remove target offsets from page coordinates
|
||||||
|
for (var el = event.target || event.srcElement; el;
|
||||||
|
point.x -= el.offsetLeft, point.y -= el.offsetTop,
|
||||||
|
el = el.offsetParent);
|
||||||
|
return point;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in a new issue