Martin B.: Fading-Script mit Problemen...

Beitrag lesen

Hallo allerseits.

Ich habe von http://anarchos.xs.mw sowohl das Text-Link-Fading-Script als auch das Bild-Fading-Script heruntergeladen, aber erst vor etwa 5 Tagen wollte ich diese zum Einsatz bringen.
Beim Text-Fading-Script gibt es eine "Auto-Fade-Option", die es einem ermöglicht, dass man nicht bei jedem <a>-Tag als Klasse class="fade" festlegen muss.
Nun hätte ich diese Option auch gerne in dem Bild-Fading-Script, aber ich habe absolut NULL Ahnung von JavaScript und daher weiß ich nicht, ob und falls ja, wie sich so etwas programmieren lässt.

Bitte helt mir!

Vielen Dank im Voraus.

P.S.: Die Page ist leider tot, keine Ahnung warum.
P.P.S.: Ich gebe gerne den Code Preis:

Text-Fading:

/*****************
 * Einstellungen *
 *****************/

// Fading-Farben - Option: #XXXXXX
startColor = "#C8C8C8";
endColor = "#C80000";

// Fade In-Zeit
stepIn = 21;

// Fade Out-Zeit
stepOut = 15;

// Auto-Fade (Fading bei allen Links) - Option: true || false
// Bei "false" muss jeder Link den class="Fade"-Tag beinhalten!
autoFade = true;

// Auto-Fade-Ersatz - Option: true || false
// Muss auf "true" gesetzt werden, wenn Auto-Fade deaktiviert ist!
sloppyClass = true;

/************
 * Hinweise *
 ************/

// Zwischen den <a> und </a>-Tag dürfen KEINE Formatierungs-Tags verwendet werden!
// Stattdessen sollte man <span>-Tags verwenden oder Klassen zuweisen!

/*****************
 * Programm-Code *
 *****************/

hexa = new makearray(16);

for(var i = 0; i < 10; i++)
 hexa[i] = i;
 hexa[10]="a";
 hexa[11]="b";
 hexa[12]="c";
 hexa[13]="d";
 hexa[14]="e";
 hexa[15]="f";

document.onmouseover = domouseover;
 document.onmouseout = domouseout;

startColor = dehexize(startColor.toLowerCase());
 endColor = dehexize(endColor.toLowerCase());

var fadeId = new Array();

function dehexize(Color)
{
 var colorArr = new makearray(3);

for (i=1; i<7; i++)
 {
  for (j=0; j<16; j++)
  {
   if (Color.charAt(i) == hexa[j])
   {
    if (i%2 !=0)
     colorArr[Math.floor((i-1)/2)]=eval(j)*16;
    else
     colorArr[Math.floor((i-1)/2)]+=eval(j);
   }
  }
 }
 return colorArr;
}

function domouseover()
{
 if(document.all)
 {
  var srcElement = event.srcElement;

if ((srcElement.tagName == "A" && autoFade) || srcElement.className == "fade" || (sloppyClass && srcElement.className.indexOf("fade") != -1))
   fade(startColor,endColor,srcElement.uniqueID,stepIn);
 }
}

function domouseout()
{
 if (document.all)
 {
  var srcElement = event.srcElement;

if ((srcElement.tagName == "A" && autoFade) || srcElement.className == "fade" || (sloppyClass && srcElement.className.indexOf("fade") != -1))
   fade(endColor,startColor,srcElement.uniqueID,stepOut);
 }
}

function makearray(n)
{
 this.length = n;

for(var i = 1; i <= n; i++)
  this[i] = 0;
  return this;
}

function hex(i)
{
 if (i < 0)
  return "00";
 else if (i > 255)
  return "ff";
 else
  return "" + hexa[Math.floor(i/16)] + hexa[i%16];
}

function setColor(r, g, b, element)
{
 var hr = hex(r);
 var hg = hex(g);
 var hb = hex(b);

element.style.color = "#"+hr+hg+hb;
}

function fade(s,e, element,step)
{
 var sr = s[0];
 var sg = s[1];
 var sb = s[2];

var er = e[0];
 var eg = e[1];
 var eb = e[2];

if (fadeId[0] != null && fade[0] != element)
 {
  setColor(sr,sg,sb,eval(fadeId[0]));

var i = 1;

while(i < fadeId.length)
  {
   clearTimeout(fadeId[i]);
   i++;
  }
 }

for(var i = 0; i <= step; i++)
 {
  fadeId[i+1] = setTimeout("setColor(Math.floor(" +sr+ " *(( " +step+ " - " +i+ " )/ " +step+ " ) + " +er+ " * (" +i+ "/" + step+ ")),Math.floor(" +sg+ " * (( " +step+ " - " +i+ " )/ " +step+ " ) + " +eg+ " * (" +i+ "/" +step+ ")),Math.floor(" +sb+ " * ((" +step+ "-" +i+ ")/" +step+ ") + " +eb+ " * (" +i+ "/" +step+ ")),"+element+");",i*step);
 }

fadeId[0] = element;
}

Bild-Fading:

nereidFadeObjects = new Object();
nereidFadeTimers = new Object();

function nereidFade(object, destOp, rate, delta)
{
 if (!document.all)
  return

if (object != "[object]")
 {
  setTimeout("nereidFade("+object+", "+destOp+", "+rate+", "+delta+")", 0);
  return;
 }

clearTimeout(nereidFadeTimers[object.sourceIndex]);

diff = destOp - object.filters.alpha.opacity;
 direction = 1;

if (object.filters.alpha.opacity > destOp)
 {
  direction = -1;
 }

delta = Math.min (direction * diff, delta);
 object.filters.alpha.opacity += direction * delta;

if (object.filters.alpha.opacity != destOp)
 {
  nereidFadeObjects[object.sourceIndex] = object;
  nereidFadeTimers[object.sourceIndex] = setTimeout("nereidFade(nereidFadeObjects["+object.sourceIndex+"], "+destOp+","+rate+","+delta+")", rate);
 }
}

Bei diesem Fading muss man jedoch in jedem <img>-Tag noch folgendes notieren:

onMouseOver="nereidFade(this,100,50,10)"
onMouseOut="nereidFade(this,66,50,5)"
style="filter:alpha(opacity=66)"

Mit freundlichen Grüßen,
                                 Martin B.