aboutsummaryrefslogtreecommitdiffstats
path: root/blinkelement.js
diff options
context:
space:
mode:
authorjanus_wel2008-11-22 16:53:41 +0000
committerjanus_wel2008-11-22 16:53:41 +0000
commit4950fbe6620a25aa1eafbcb53a31da955a65bd53 (patch)
treeab91224114a5cd2bf1a5b2a65056caaf5a94352b /blinkelement.js
parentac3737726e46cfd137f94673be3c3c345b972b44 (diff)
downloadvimperator-plugins-4950fbe6620a25aa1eafbcb53a31da955a65bd53.tar.bz2
change method for blink.
append 'div' element that have style 'position=absolute;' git-svn-id: http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk@24664 d0d07461-0603-4401-acd4-de1884942a52
Diffstat (limited to 'blinkelement.js')
-rw-r--r--blinkelement.js51
1 files changed, 30 insertions, 21 deletions
diff --git a/blinkelement.js b/blinkelement.js
index 154d6e3..0ddb270 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.11
+ * @version 0.20
* @minversion 2.0pre 2008/10/16
* ==/VimperatorPlugin==
*
@@ -30,7 +30,7 @@
* EXAMPLE
* let blink_element_interval='500'
* let blink_element_color='green'
- * let blink_element_sparecolor='purple'
+ * let blink_element_opacity='0.7'
*
* :bl content.document.getElementsByTagName('A');
* :bl buffer.evaluateXPath('//a');
@@ -39,32 +39,40 @@
( function () {
-let intervalList = [];
const interval = liberator.globalVariables.blink_element_interval || 800;
const color = liberator.globalVariables.blink_element_color || 'red';
-const spareColor = liberator.globalVariables.blink_element_sparecolor || 'cyan';
+const opacity = liberator.globalVariables.blink_element_opacity || 0.5;
+const doc = content.document;
function setBlink(element) {
- let originalColor = element.style.backgroundColor || 'inherit';
- let blinkColor = (originalColor == color) ? spareColor : color;
+ let div = doc.createElement('div');
+ div.className = 'vimp_plugin_blinkelement';
- element.style.backgroundColor = blinkColor;
- let state = false;
- let intervalId = setInterval( function () {
- element.style.backgroundColor = state ? blinkColor : originalColor;
- state = !state;
- }, interval);
+ 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.width = element.offsetWidth + 'px';
+ div.style.height = element.offsetHeight + 'px';
+ div.style.backgroundColor = color;
+ div.style.opacity = opacity;
+ div.style.MozOpacity = opacity;
- intervalList.push({
- id: intervalId,
- element: element,
- color: originalColor,
- });
+ div.intervalId = setInterval(
+ function () {
+ let d = div.style.display;
+ div.style.display = (d === 'block' ? 'none' : 'block');
+ },
+ interval
+ );
+
+ doc.body.appendChild(div);
}
-function clearBlink(i) {
- i.element.style.backgroundColor = i.color;
- clearInterval(i.id);
+function clearBlink(element) {
+ if (element.intervalId) clearInterval(element.intervalId);
+ element.parentNode.removeChild(element);
}
commands.addUserCommand(
@@ -108,7 +116,8 @@ commands.addUserCommand(
['noblink', 'nobl'],
'no blink',
function () {
- while (intervalList.length) clearBlink(intervalList.pop());
+ let divs = buffer.evaluateXPath('//div[contains(concat(" ", @class, " "), " vimp_plugin_blinkelement ")]');
+ for (let d in divs) clearBlink(d);
},
{}
);