From 0f3a4a5890a627de8e31b4516234a43c087d0e8a Mon Sep 17 00:00:00 2001 From: zero Date: Mon, 10 Dec 2007 05:11:47 +0000 Subject: [PATCH] =?UTF-8?q?rainbow=20=EB=A7=81=ED=81=AC=20=EC=95=A0?= =?UTF-8?q?=EB=93=9C=EC=98=A8=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: http://xe-core.googlecode.com/svn/sandbox@3282 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- addons/rainbow_link/conf/info.xml | 34 +++ addons/rainbow_link/js/rainbow.js | 245 +++++++++++++++++++++ addons/rainbow_link/rainbow_link.addon.php | 19 ++ 3 files changed, 298 insertions(+) create mode 100644 addons/rainbow_link/conf/info.xml create mode 100644 addons/rainbow_link/js/rainbow.js create mode 100644 addons/rainbow_link/rainbow_link.addon.php diff --git a/addons/rainbow_link/conf/info.xml b/addons/rainbow_link/conf/info.xml new file mode 100644 index 000000000..2134040d3 --- /dev/null +++ b/addons/rainbow_link/conf/info.xml @@ -0,0 +1,34 @@ + + + 레인보우 링크 애드온 + Rainbow 链接 + Addon for rainbow links + Adición Enlace Arco Iris + レインボーリンク + + dynamicdrive.com + dynamicdrive.com + dynamicdrive.com + dynamicdrive.com + dynamicdrive.com + + rainbow.js를 header에 추가하여 링크가 걸린 글의 색을 무지개색으로 나타냅니다. + 이 애드온의 rainbow.js는 <a href="http://www.dynamicdrive.com" target="_blank">Dynamicdrive.com</a>에 저작권이 있습니다. + + + 把rainbow.js添加到header区使链接显示为彩虹色。 + 此插件的rainbow.js文件版权属于 <a href="http://www.dynamicdrive.com" target="_blank">Dynamicdrive.com</a> + + + This addon adds a file named "rainbow.js" to headers, then linked text will get chameleon(rainbow) color change effect. + "rainbow.js" Copyrightⓒ2007 <a href="http://www.dynamicdrive.com" target="_blank">Dynamicdrive.com</a>. + + + incluye rainbow.js en header para mostrar enlaces en colores de arco iris. + <a href="http://www.dynamicdrive.com" target="_blank">Dynamicdrive.com</a> tiene derecho de autor sobre rainbow.js + + + 「rainbow.js」をヘッダーに追加し、リンクされている文字列の色を虹色で表示します。この機能拡張の「 rainbow.js」は「<a href="http://www.dynamicdrive.com" target="_blank">Dynamicdrive.com</a>」に著作権があります。 + + + diff --git a/addons/rainbow_link/js/rainbow.js b/addons/rainbow_link/js/rainbow.js new file mode 100644 index 000000000..5e8421bcb --- /dev/null +++ b/addons/rainbow_link/js/rainbow.js @@ -0,0 +1,245 @@ +/************************************************************************/ +/* Rainbow Links Version 1.03 (2003.9.20) */ +/* Script updated by Dynamicdrive.com for IE6 */ +/* Copyright (C) 1999-2001 TAKANASHI Mizuki */ +/* takanasi@hamal.freemail.ne.jp */ +/*----------------------------------------------------------------------*/ +/* Read it somehow even if my English text is a little wrong! ;-) */ +/* */ +/* Usage: */ +/* Insert '' into the BODY section, */ +/* right after the BODY tag itself, before anything else. */ +/* You don't need to add "onMouseover" and "onMouseout" attributes!! */ +/* */ +/* If you'd like to add effect to other texts(not link texts), then */ +/* add 'onmouseover="doRainbow(this);"' and */ +/* 'onmouseout="stopRainbow();"' to the target tags. */ +/* */ +/* This Script works with IE4,Netscape6,Mozilla browser and above only, */ +/* but no error occurs on other browsers. */ +/************************************************************************/ + + +//////////////////////////////////////////////////////////////////// +// Setting + +var rate = 20; // Increase amount(The degree of the transmutation) + + +//////////////////////////////////////////////////////////////////// +// Main routine + +/* +if (document.getElementById) +window.onerror=new Function("return true") +*/ + +var objActive; // The object which event occured in +var act = 0; // Flag during the action +var elmH = 0; // Hue +var elmS = 128; // Saturation +var elmV = 255; // Value +var clrOrg; // A color before the change +var TimerID; // Timer ID + + +if(xIE4Up) { + xAddEventListener(document, 'mouseover', doRainbowAnchor); + xAddEventListener(document, 'mouseout', stopRainbowAnchor); +} else { + xAddEventListener(document, 'mouseover', Mozilla_doRainbowAnchor); + xAddEventListener(document, 'mouseout', Mozilla_stopRainbowAnchor); +} +/* +if (document.all) { + document.onmouseover = doRainbowAnchor; + document.onmouseout = stopRainbowAnchor; +} +else if (document.getElementById) { + document.captureEvents(Event.MOUSEOVER | Event.MOUSEOUT); + document.onmouseover = Mozilla_doRainbowAnchor; + document.onmouseout = Mozilla_stopRainbowAnchor; +} +*/ + + +//============================================================================= +// doRainbow +// This function begins to change a color. +//============================================================================= +function doRainbow(obj) +{ + if (act == 0) { + act = 1; + if (obj) + objActive = obj; + else + objActive = event.srcElement; + clrOrg = objActive.style.color; + TimerID = setInterval("ChangeColor()",100); + } +} + + +//============================================================================= +// stopRainbow +// This function stops to change a color. +//============================================================================= +function stopRainbow() +{ + if (act) { + objActive.style.color = clrOrg; + clearInterval(TimerID); + act = 0; + } +} + + +//============================================================================= +// doRainbowAnchor +// This function begins to change a color. (of a anchor, automatically) +//============================================================================= +function doRainbowAnchor() +{ + try { + if (act == 0) { + var obj = event.srcElement; + while (obj.tagName != 'A' && obj.tagName != 'BODY') { + obj = obj.parentElement; + if (obj.tagName == 'A' || obj.tagName == 'BODY') + break; + } + + if (obj.tagName == 'A' && obj.href != '') { + objActive = obj; + act = 1; + clrOrg = objActive.style.color; + TimerID = setInterval("ChangeColor()",100); + } + } + } catch(e) { + } +} + + +//============================================================================= +// stopRainbowAnchor +// This function stops to change a color. (of a anchor, automatically) +//============================================================================= +function stopRainbowAnchor() +{ + if (act) { + if (objActive.tagName == 'A') { + objActive.style.color = clrOrg; + clearInterval(TimerID); + act = 0; + } + } +} + + +//============================================================================= +// Mozilla_doRainbowAnchor(for Netscape6 and Mozilla browser) +// This function begins to change a color. (of a anchor, automatically) +//============================================================================= +function Mozilla_doRainbowAnchor(evt) +{ + var e = new xEvent(evt); + if (act == 0) { + obj = e.target; + while (obj.nodeName != 'A' && obj.nodeName != 'BODY') { + obj = obj.parentNode; + if(typeof(obj)=='undefined'||!obj) return; + if (obj.nodeName == 'A' || obj.nodeName == 'BODY') break; + } + + if (obj.nodeName == 'A' && obj.href != '') { + objActive = obj; + act = 1; + clrOrg = obj.style.color; + TimerID = setInterval("ChangeColor()",100); + } + } +} + + +//============================================================================= +// Mozilla_stopRainbowAnchor(for Netscape6 and Mozilla browser) +// This function stops to change a color. (of a anchor, automatically) +//============================================================================= +function Mozilla_stopRainbowAnchor(e) +{ + if (act) { + if (objActive.nodeName == 'A') { + objActive.style.color = clrOrg; + clearInterval(TimerID); + act = 0; + } + } +} + + +//============================================================================= +// Change Color +// This function changes a color actually. +//============================================================================= +function ChangeColor() +{ + objActive.style.color = makeColor(); +} + + +//============================================================================= +// makeColor +// This function makes rainbow colors. +//============================================================================= +function makeColor() +{ + // Don't you think Color Gamut to look like Rainbow? + + // HSVtoRGB + if (elmS == 0) { + elmR = elmV; elmG = elmV; elmB = elmV; + } + else { + t1 = elmV; + t2 = (255 - elmS) * elmV / 255; + t3 = elmH % 60; + t3 = (t1 - t2) * t3 / 60; + + if (elmH < 60) { + elmR = t1; elmB = t2; elmG = t2 + t3; + } + else if (elmH < 120) { + elmG = t1; elmB = t2; elmR = t1 - t3; + } + else if (elmH < 180) { + elmG = t1; elmR = t2; elmB = t2 + t3; + } + else if (elmH < 240) { + elmB = t1; elmR = t2; elmG = t1 - t3; + } + else if (elmH < 300) { + elmB = t1; elmG = t2; elmR = t2 + t3; + } + else if (elmH < 360) { + elmR = t1; elmG = t2; elmB = t1 - t3; + } + else { + elmR = 0; elmG = 0; elmB = 0; + } + } + + elmR = Math.floor(elmR).toString(16); + elmG = Math.floor(elmG).toString(16); + elmB = Math.floor(elmB).toString(16); + if (elmR.length == 1) elmR = "0" + elmR; + if (elmG.length == 1) elmG = "0" + elmG; + if (elmB.length == 1) elmB = "0" + elmB; + + elmH = elmH + rate; + if (elmH >= 360) + elmH = 0; + + return '#' + elmR + elmG + elmB; +} diff --git a/addons/rainbow_link/rainbow_link.addon.php b/addons/rainbow_link/rainbow_link.addon.php new file mode 100644 index 000000000..d47082f38 --- /dev/null +++ b/addons/rainbow_link/rainbow_link.addon.php @@ -0,0 +1,19 @@ +