aboutsummaryrefslogtreecommitdiffstats
path: root/blinkelement.js
diff options
context:
space:
mode:
authorjanus_wel2008-11-23 01:33:02 +0000
committerjanus_wel2008-11-23 01:33:02 +0000
commit816b1be22cda16ce5f651f5269b607e6b60040c3 (patch)
tree3f66651a3442b29f70ae10a01fd0c16da91aad1a /blinkelement.js
parent238d125adfbabb3bdb9671e5142f5128a1d31d44 (diff)
downloadvimperator-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 'blinkelement.js')
-rw-r--r--blinkelement.js24
1 files changed, 16 insertions, 8 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);