diff options
-rw-r--r-- | blinkelement.js | 24 | ||||
-rw-r--r-- | mouseinspect.js | 31 |
2 files changed, 42 insertions, 13 deletions
diff --git a/blinkelement.js b/blinkelement.js index b7b7e1a..4993f84 100644 --- a/blinkelement.js +++ b/blinkelement.js @@ -4,7 +4,7 @@ * @description blink specified elements. * @description-ja 指定した要素を点滅させる。 * @author janus_wel <janus_wel@fb3.so-net.ne.jp> - * @version 0.20 + * @version 0.21 * @minversion 2.0pre 2008/10/16 * ==/VimperatorPlugin== * @@ -21,11 +21,9 @@ * -> clear blink all elements. * * SETTING - * blink_element_interval: interval time. default is 800 msec. - * blink_element_color: color for blink. default is red. - * blink_element_sparecolor: use this value when target's background color - * is same as color specified blink_element_color - * or default. default is cyan. + * blink_element_interval: interval time. default is 800 msec. + * blink_element_color: color for blink. default is red. + * blink_element_opacity: opacity value. defualt is 0.5 . * * EXAMPLE * let blink_element_interval='500' @@ -45,14 +43,15 @@ const opacity = liberator.globalVariables.blink_element_opacity || 0.5; function setBlink(element) { let doc = content.document; + let [top, left] = getAbsoluteCoodinate(element); let div = doc.createElement('div'); div.className = 'vimp_plugin_blinkelement'; 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; @@ -70,6 +69,15 @@ function setBlink(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 clearBlink(element) { if (element.intervalId) clearInterval(element.intervalId); element.parentNode.removeChild(element); 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) { |