summaryrefslogtreecommitdiff
path: root/public/assets/javascripts/rectangles/util/coords.js
diff options
context:
space:
mode:
Diffstat (limited to 'public/assets/javascripts/rectangles/util/coords.js')
-rw-r--r--public/assets/javascripts/rectangles/util/coords.js33
1 files changed, 33 insertions, 0 deletions
diff --git a/public/assets/javascripts/rectangles/util/coords.js b/public/assets/javascripts/rectangles/util/coords.js
new file mode 100644
index 0000000..74b7fda
--- /dev/null
+++ b/public/assets/javascripts/rectangles/util/coords.js
@@ -0,0 +1,33 @@
+function offsetFromPoint(event, element) {
+ function a(width) {
+ var l = 0, r = 200;
+ while (r - l > 0.0001) {
+ var mid = (r + l) / 2;
+ var a = document.createElement('div');
+ a.style.cssText = 'position: absolute;left:0;top:0;background: red;z-index: 1000;';
+ a.style[width ? 'width' : 'height'] = mid.toFixed(3) + '%';
+ a.style[width ? 'height' : 'width'] = '100%';
+ element.appendChild(a);
+ var x = document.elementFromPoint(event.clientX, event.clientY);
+ element.removeChild(a);
+ if (x === a) {
+ r = mid;
+ } else {
+ if (r === 200) {
+ return null;
+ }
+ l = mid;
+ }
+ }
+ return mid;
+ }
+ var l = a(1),
+ t = a(0);
+ return l && t ? {
+ left: l / 100,
+ top: t / 100,
+ toString: function () {
+ return 'left: ' + l + '%, top: ' + t + '%';
+ }
+ } : null;
+}