TommyR: Skript mehrmals parallel ausführen...

Beitrag lesen

Grüssle,

setTimeout kann ich nicht verwenden (glaube ich zumindest) denn das ist mein Skript:

<script>
//<!--
 //<![CDATA[

/* Diese Farben sind für Netscape und Opera, da diese die deHexize-Funktion nicht unterstuetzen */
//priFade
colors = new Array("ffffff", "D2CFC2", "B2AE97", "999476", "827C56", "70693F", "5E5626", "5E5626", "70693F", "827C56", "999476", "B2AE97", "D2CFC2", "ffffff")
//secFade
altColors = new Array();

/* MSIE Farben... */
fadeInColor = "#5E5626";  //priFade
fadeOutColor = "#ffffff"; //priFade
altInColor = "";          //secFade
altOutColor = "";         //secFade

/* Variablen ersetzen */
//fadeInColor = dehexize(fadeInColor.toLowerCase());
//fadeOutColor = dehexize(fadeOutColor.toLowerCase());
//altInColor = dehexize(altInColor.toLowerCase());
//altOutColor = dehexize(altOutColor.toLowerCase());

/* Farb-Details festlegen */
speed = 100;
stepIn = colors.length * 2; //def. 35
stepOut = colors.length * 2; //def. 35

/* sonst. Variablen */
var brwsr;
var fadeId = new Array();
var elementDoc, elementTag, elementClass, elementUID;
var timerID;
autofade = 0;
colorNum =0;
var elm;

/* Event-Handler */
document.onmousemove = detect;

function detect() {
 if (document.layers) { /* NN4 (NN) */
  for(j=0; j < document.links.length; j++) {
   document.links[j].onmouseover = doOver;
   document.links[j].onmouseout = doOut;
  }
 } else if (document.all) { /* MSIE */
  if (event.srcElement.parentNode.tagName=="A" && event.srcElement.tagName=="IMG") {

} else if (event.srcElement.firstChild.tagName=="IMG" && event.srcElement.tagName=="A") {

} else if (event.srcElement.tagName=="A" && event.srcElement.firstChild.tagName!="IMG") {
   event.srcElement.onmouseover = doOver;
   event.srcElement.onmouseout = doOut;
  }
 } else if (document.getElementById) { /* NN6+ (NS) OP */
  for(j=0; j < document.getElementsByTagName("a").length; j++) {
   link = document.getElementsByTagName("a");
   link[j].onmouseover = doOver;
   link[j].onmouseout = doOut;
  }
 }
}

function doOver(obj) {
clearTimeout(timerID);
 /* Wandel leeres obj in id des aktiven elm um! (ie||ns/moz||op) */
 if (!obj || obj=="[object]" || obj=="[object Event]" || obj=="[object MouseEvent]") {
  elm = this.id;
 } else {
  elm = obj;
 }

autofade = 1; //<== DAS ist das eigentliche Problem
 fade(elm);
}

function doOut(obj) {
clearTimeout(timerID);
 /* Wandel leeres obj in id des aktiven elm um! (ie||ns/moz||op) */
 if (!obj || obj=="[object]" || obj=="[object Event]" || obj=="[object MouseEvent]") {
  elm = this.id;
 } else {
  elm = obj;
 }

autofade = null; //<== und nat. das
}

function fade(obj) {
  xmp = obj;
 if (autofade==1) {
  if (colorNum<=colors.length-1) {
   document.getElementById(xmp).style.color = "#" + colors[colorNum];
   colorNum++
   timerID = setTimeout("fade(xmp)", speed); //<=== hier?
  } else {
   colorNum = 0;
   timerID = setTimeout("fade(xmp)", speed); //<=== oder hier?
  }
 }
}

//]]>
//-->
</script>

Ich benutze bereits ein timeout um den "Fade" pulisieren zu lassen..
Sorry, ich hab echt keinen Plan wie ich mit einem weiteren TimeOut mehrere Objekte "faden" könnt.. *schnief*