Forum de discussion
Forum « Programmation Javascript » (archives)
2 scripts : un seul pris en compte
Envoyé: 14 août 2004, 12h05 par GuitarManihack
j ai également inséré un code qui permet d avoir un effet de fondu sur les liens, quand on passe le curseur dessus.
il y a un probleme. seul le dernier script de la page est pris en compte(apparement), il m est donc impossible d afficher les deux effets simultaméments.
voici le script des liens, qui est stocké dans un fichier js (je le met dans head) :
/******************************************************************
* Script name: Link fader (http://projects.impenetrable.org/linkfader/)
* Version: 1.0
* Date: 12.05.02
* Usage: Freeware - You may modify this script as you wish,
* as long as you don't remove or edit this header comment.
*
* Script by: Fayez Zaheer (viol8r on #webdesign [uk.zanet.org.za])
* Email: fayez at impenetrable.org
* Web site: http://impenetrable.org
* Original idea: http://anarchos.xs.mw/fade.phtml
******************************************************************/
// DELETE COMMENTS THAT START WITH // TO MAKE THE FILE SIZE SMALLER.
// This script will no longer overwrite your current onmouseover and
// onmouseout attributes - it will instead skip those links. If you would
// still like to fade them, add findLink(this.id) to your onmouseover
// and clearFade() to your onmouseout, like so -
// <a href="#" onmouseover="findLink(this.id); yourFunction()"
// onmouseout="clearFade(); yourSecondFunction()">
// Make sure to put it BEFORE any "return" statements otherwise
// the fade will not execute.
// Fade-to colour without the # (6 character value only!)
var fadeTo = "FF0000";
// Fade in colour increment/decrement by
var fiBy = 10;
// Fade out colour increment/decrement by
var foBy = 10;
// Speed - milliseconds between each colour change in the fade
// Less than 10ms doesn't really make all that much difference, so
// 10 is the minimum effective value.
var speed = 10;
// Class name of links to NOT fade (i.e. ignore)
// var ignoreClass = "somebogusvalue" if you don't want to
// use this feature. Alternatively, add onmouseover="clearFade()"
// to the link you do not wish to fade.
var ignoreClass = "ignore";
// No more changes required (unless you know what you are doing)
// Enjoy... and email me and let me know what site(s) you are using it on :)
var opera, ie, dom, x = 0, oc, fader, ocs = new Array();
if (navigator.userAgent.indexOf("Opera") != -1) opera = true
else if (document.all && !opera) ie = true
else if (!document.all && document.getElementById) dom = true;
function convertRGB(z)
{
var newfcS = "", splitter = "";
splitter = z.split(",");
splitter[0] = parseInt(splitter[0].substring(4, splitter[0].length));
splitter[1] = parseInt(splitter[1]);
splitter[2] = parseInt(splitter[2].substring(0, splitter[2].length-1));
for (var q = 0; q < 3; q++)
{
splitter[q] = splitter[q].toString(16);
if (splitter[q].length == 1) splitter[q] = "0" + splitter[q];
newfcS += splitter[q];
}
return newfcS;
}
function currentColour(index)
{
var temp, cc;
if (opera) cc = document.links[index].style.color
else if (ie) cc = document.links[index].currentStyle.color
else if (dom) cc = document.defaultView.getComputedStyle(document.links[index], '').getPropertyValue("color");
if (cc.length == 4 && cc.substring(0, 1) == "#")
{
temp = "";
for (var a = 0; a < 3; a++)
temp += cc.substring(a+1, a+2) + cc.substring(a+1, a+2);
cc = temp;
}
else if (cc.indexOf("rgb") != -1) cc = convertRGB(cc)
else if (cc.length == 7) cc = cc.substring(1, 7)
else cc = fadeTo;
return cc;
}
function convert2Dec(hex)
{
var rgb = new Array();
for (var u = 0; u < 3; u++)
rgb[u] = parseInt(hex.substring(u*2, u*2+2), 16);
return rgb;
}
function newRGB(f, n, d)
{
var change;
if (d == 1) change = fiBy
else change = foBy;
for (var g = 0; g < 3; g++)
{
if (n[g] > f[g] && n[g] - change >= 0) n[g] -= change;
if (n[g] < f[g] && n[g] + change <= 255) n[g] += change;
}
return n;
}
function fade(index, d)
{
var fc, nc, temp = new Array(), finished = false;
nc = convert2Dec(currentColour(index));
if (d == 1) fc = convert2Dec(fadeTo)
else fc = convert2Dec(ocs[x]);
temp = convert2Dec(currentColour(index));
nc = newRGB(fc, nc, d);
if ((nc[0] == temp[0]) && (nc[1] == temp[1]) && (nc[2] == temp[2]))
finished = true;
if (!finished) document.links[x].style.color = "rgb(" + nc[0] + "," + nc[1] + "," + nc[2] + ")"
else clearInterval(fader);
}
function findLink(over)
{
if (document.layers) return;
if (fader)
{
clearInterval(fader);
document.links[x].style.color = "#" + ocs[x];
}
if (over && !this.id) this.id = over;
x = 0;
while (!(this.id == document.links[x].id) && (x < document.links.length))
x++;
if (this.id == document.links[x].id)
{
oc = currentColour(x);
fader = setInterval("fade(" + x + ", 1)", speed);
}
}
function clearFade()
{
if (document.layers) return;
if (fader) clearInterval(fader);
fader = setInterval("fade(" + x + ", 0)", speed);
}
function init()
{
for (var i = 0; i < document.links.length; i++)
{
ocs[i] = currentColour(i);
var currentOver = document.links[i].onmouseover;
var currentOut = document.links[i].onmouseout;
var ignoreIt = document.links[i].className == ignoreClass;
if (!ignoreIt) document.links[i].id = "link" + i;
if (!currentOver && !currentOut && !ignoreIt)
{
document.links[i].onmouseover = findLink;
document.links[i].onmouseout = clearFade;
}
}
}
if (opera || ie || dom) window.onload = init;
_______________________
voici le script du message de bienvenue (head)
<script type = "text/javascript">
//Created by Fader Maker (http://www.bosiljak.hr/fadermaker/)
var fmTimer = null;
function fminit(){
if (!document.getElementById) return;
fma1=0x00; fma2=0x00; fma3=0x00;
fma4=0xff; fma5=0x00; fma6=0x00;
fmFade();
}
function fmToHex(n){
var hexChars = "0123456789ABCDEF";
if (n == 0) return "00";
var j, n;
var temp = "";
while (n != 0){
j = n % 16;
n = (n - j)/16;
temp = hexChars.charAt(j) + temp;
}
if (temp.length < 2){
temp = "0" + temp;
}
return temp;
}
function fmFade(){
obj = document.getElementById('tekst').style;
fmcolor = "#" + fmToHex(fma1) + fmToHex(fma2) + fmToHex(fma3);
obj.color = fmcolor;
if (fma1 != fma4){
if (fma4 > fma1){fma1++;}
else{fma1--;}}
if (fma2 != fma5){
if (fma5 > fma2){fma2++;}
else{fma2--;}}
if (fma3 != fma6){
if (fma6 > fma3){fma3++;}
else{fma3--;}}
if ((fma1 == fma4) && (fma2 == fma5) && (fma3 == fma6)){
window.clearTimeout(fmTimer);
}
else{
fmTimer = window.setTimeout("fmFade()",10);
}
}
onload = fminit</script>
_______________________
et du texte sur lequel l effet sera appliqué (body)
<span class="Style11" id="tekst" style="font-size:40px; font-family: Verdana, Geneva, sans-serif; letter-spacing:19px; font-weight:bold; font-style:italic; padding-left:20px; padding-right:20px;">Bienvenue</span>
merci d'avance, désolé de vous ennuyer avec mes questions de newb ;)
@+
Réponses
|