summaryrefslogtreecommitdiff
path: root/assets/javascripts/util/coords.js
diff options
context:
space:
mode:
Diffstat (limited to 'assets/javascripts/util/coords.js')
-rw-r--r--assets/javascripts/util/coords.js33
1 files changed, 33 insertions, 0 deletions
diff --git a/assets/javascripts/util/coords.js b/assets/javascripts/util/coords.js
new file mode 100644
index 0000000..74b7fda
--- /dev/null
+++ b/assets/javascripts/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;
+}