diff options
author | janus_wel | 2008-11-23 01:33:02 +0000 |
---|---|---|
committer | janus_wel | 2008-11-23 01:33:02 +0000 |
commit | 816b1be22cda16ce5f651f5269b607e6b60040c3 (patch) | |
tree | 3f66651a3442b29f70ae10a01fd0c16da91aad1a /mouseinspect.js | |
parent | 238d125adfbabb3bdb9671e5142f5128a1d31d44 (diff) | |
download | vimperator-plugins-816b1be22cda16ce5f651f5269b607e6b60040c3.tar.bz2 |
bugfix: compute absolute coordinate
add document
git-svn-id: http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk@24681 d0d07461-0603-4401-acd4-de1884942a52
Diffstat (limited to 'mouseinspect.js')
-rw-r--r-- | mouseinspect.js | 31 |
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) { |