Код:
<SCRIPT language="JavaScript"> // ------------- Браузер Детектор--------------- // Возможные значения для браузера являются: // "netscape" // "opera" <--(ewww) // "msie" <--(двойной ewww) // "робот" // "неизвестно" // Возможные значения для версии являются: // любое числовое значение (3, 2.02, 4.04 и др.) // 0, если невозможно определить var browser = "unknown"; var version = 0; if (navigator.userAgent.indexOf("Опера") >= 0) browser = "opera"; else if (navigator.userAgent.indexOf("obot") >= 0) браузер = "robot"; else if (navigator.appName.indexOf("etscape") >= 0) браузер = "netscape"; else if (navigator.appName.indexOf("icrosoft") >= 0) браузер = "msie"; version = parseFloat ("навигатор".appVersion); if (isNaN(версию)) версия = 0; if ((browser == "msie")&&(version == 2)) версия = 3; // ------------------ Градиент Выходной-------------------- // Синтаксис для использования: // градиент(TEXT_STRING_HERE,HEXCODES_STRING_HERE); // использовать аналогичным образом можно использовать документ.write(); // обратите внимание, это не может использоваться, чтобы возвратить строковое значение. // градиент() принимает два arguements. первый будет // быть изначально чистой текстовой строки. (не htmlcodes) // второй аргумент-это строка цвет hexcodes // разделенных пробелами, через который текст должен // прогресс. например, скажем, вы хотели бы распечатать // строка "градиент", и вы хотели, чтобы он // прогресс от синего к красному. цветовой код синий // 4444FF, и цветовой код красный FF4444. // принятия этих двух кодексов, и исходная строка, // где-то в теле документа, который вы бы // запись в тег <Script>, следующие: // gradient("градиент","4444FF FF4444"); // если, однако, вы хотели, чтобы это прогресс через три // или более цветов, ее также просто, как добавление их в // строка цветовые коды. важно помнить, // однако, что строка должна быть цвета HEXCODES, и // не просто названия цветов, (e.x- "красный", "желтый") // если это кажется слишком сложным, то, возможно, // вы должны попробовать что-то простое, как срывая // некоторых раздражает status bar text scroller. =Ю // одна последняя вещь. если вы злоупотребляете этот скрипт, я могу // довольно много gaurantee люди будут ненавидеть ваши веб-страницы. // на самом деле, это javascript, интенсивно использующих память. если // перестарайся, ты грохот некоторыми браузерами посетителей. // ------------------------------------------------------ // Таблица подстановки var tohex = new Array(256); var hex = "0123456789ABCDEF"; var count = 0; for (x=0; x<16; x++) { for (y=0; y<16; y++) { tohex[count] = hex.charAt(x) + hex.charAt(y); count++; } } //ColorCode конструктор функция ColorCode(hexcode) { если (hexcode.длина == 7) { это.r = parseInt(hexcode.substring(1,3),16); это.g = parseInt(hexcode.substring(3,5),16); это.b = parseInt(hexcode.substring(5,7),16); } else if (hexcode.длина == 6) { это.r = parseInt(hexcode.substring(0,2),16); это.g = parseInt(hexcode.substring(2,4),16); это.b = parseInt(hexcode.substring(4,6),16); } else { это.r=.g=.b = 0; alert("ошибка: ColorCode конструктор failed"); } if (isNaN(это.r)||isNaN(это.г)||isNaN(это.b)) alert("ошибка: ColorCode конструктор failed"); } // ColorList конструктор функция ColorList(hexcodes) { var i = 0; var c = 0; это.коды = new Array(Math.round(hexcodes.длина/7)); while (i < hexcodes.length) { if (isNaN(parseInt(hexcodes.substring(i,i+6),16))) ++i; else { это.коды[c] = new ColorCode(hexcodes.substring(i,i+6)); i += 7; c++; } } это.len = c; } функция interpolate (x1, y1, x3, y3, x2) { если (x3 == x1) y1 вернуть else return (x2-x1)*(y3-y1)/(x3-x1) + y1 } // x=индекс письмо, y=количество букв, z=Количество цветов функция lowcolorindex (x, y, z) { if (y == 1) return 0 else return Math.floor( (x*(z-1))/(y-1) ) } функция hicolorindex (x, y, z, low) { if ( low*(y-1) == x*(z-1) ) return низкий else if (y == 1) return 0 else return Math.floor( (x*(z-1))/(y-1) + 1 ) } функция градиента (текст к нему,thecolors) { если (((browser == "netscape")||(browser == "msie")||(browser == "opera"))&&(версии>=3.0)) { var colors = new ColorList(thecolors); var numcolors = цвета.len; var numchars = текст к нему.длины; var rr = 0; var gg = 0; var bb = 0; var lci = 0; //Нижний индекс цвета var hci = 0; //высокий индекс цвета for (i=0; i<numchars; ++i) { lci = lowcolorindex(я, numchars, numcolors); hci = hicolorindex(я, numchars, numcolors, lci); rr = Math.round(interpolate( lci/(numcolors-1), цветов.коды[lci].r, hci/(numcolors-1), цветов.коды[hci].r, i/(numchars-1))); gg = Math.round(interpolate( lci/(numcolors-1), цветов.коды[lci].g, hci/(numcolors-1), цветов.коды[hci].g, i/(numchars-1))); bb = Math.round(interpolate( lci/(numcolors-1), цветов.коды[lci].b, hci/(numcolors-1), цветов.коды[hci].b, i/(numchars-1))); if (browser == "opera") { rr = 255 - rr; gg = 255 - gg; bb = 255 - bb; } документ.write(текст к нему.charAt(i).fontcolor(tohex[rr]+tohex[gg]+tohex[bb])); } } другой документ.write(текст к нему); // неопознанный браузер, лучше не пытаться что-то фантазии } </SCRIPT> <DIV align=center> <SCRIPT language="JavaScript"> градиент("всегда хотел быть гением?","FF0000 FFFFFF 0000FF"); документ.write('<BR>'); градиент("...ну...сделать это...","444444 DDDDDD 444444"); документ.write('<BR><FONT size=+1><TT><B>'); градиент("притягательный, эффективными, градиент цвета!","FF8888 FFFF88 88FF88 88FFFF 8888FF FF88FF"); документ.write('</B></TT></FONT><BR><FONT size=2>'); градиент("но, хм, просто будьте осторожны, чтобы не переусердствовать","884488 444488 448888 448844 888844 884444"); документ.write("</FONT><BR>"); </SCRIPT>