aboutsummaryrefslogtreecommitdiffstats
path: root/mouseinspect.js
diff options
context:
space:
mode:
Diffstat (limited to 'mouseinspect.js')
-rw-r--r--mouseinspect.js31
1 files changed, 26 insertions, 5 deletions
diff --git a/mouseinspect.js b/mouseinspect.js
index c7adcf1..ceb5fc0 100644
--- a/mouseinspect.js
+++ b/mouseinspect.js
@@ -4,7 +4,7 @@
* @description display informations of the specified element and highlight it by mouse.
* @description-ja マウスで指定した要素の情報をコマンドラインに表示&ハイライトする。
* @author janus_wel <janus_wel@fb3.so-net.ne.jp>
- * @version 0.10
+ * @version 0.11
* @minversion 2.0pre 2008/10/16
* ==/VimperatorPlugin==
*
@@ -12,11 +12,21 @@
* New BSD License
*
* USAGE
- * :mouseinspect start inspect by mouse
+ * :mouseinspect
* :mins
+ * -> start inspect by mouse
*
- * :nomouseinspect stop inspect and clear highlight
+ * :nomouseinspect
* :nomins
+ * -> stop inspect and clear highlight
+ *
+ * SETTING
+ * blink_element_color: color. default is red.
+ * blink_element_opacity: opacity value. default is 0.5 .
+ *
+ * EXAMPLE
+ * let blink_element_color='green'
+ * let blink_element_opacity='0.7'
* */
( function () {
@@ -32,16 +42,18 @@ function unhighlight() {
d.parentNode.removeChild(d);
}
}
+
function highlight(element) {
let doc = content.document;
let div = doc.createElement('div');
+ let [top, left] = getAbsoluteCoodinate(element);
div.className = 'vimp_plugin_mouse';
div.style.position = 'absolute';
div.style.display = 'block';
div.style.zIndex = 2147483647;
- div.style.top = element.offsetTop + 'px';
- div.style.left = element.offsetLeft + 'px';
+ div.style.top = top + 'px';
+ div.style.left = left + 'px';
div.style.width = element.offsetWidth + 'px';
div.style.height = element.offsetHeight + 'px';
div.style.backgroundColor = color;
@@ -53,6 +65,15 @@ function highlight(element) {
doc.body.appendChild(div);
}
+function getAbsoluteCoodinate(element) {
+ let top = 0, left = 0;
+ do {
+ top += element.offsetTop;
+ left += element.offsetLeft;
+ } while (element = element.offsetParent);
+ return [top, left];
+}
+
function elementInfo(event) {
let element = event.target;
if (element.ignore) {