Visualizzazione dei risultati da 1 a 6 su 6

Discussione: fader e tabella

  1. #1

    fader e tabella

    ciao a tutti, ho un prob con uno script, quello che vorrei fare io è avere l'effetto fader nel testo e nello stesso tempo l'effetto del mouseover su <td>

    lo script con l'effetto su <td> è:

    codice:
    function TL(eButton){
    	eButton.style.backgroundColor = "#4A79CD";
    	eButton.style.borderColor = "#2E4C80";
    	eButton.style.color = "#FFFFFF";
    }
    // Link ToolBar OUT
    function TL_(eButton){
    	eButton.style.backgroundColor = "";
    	eButton.style.borderColor = "";
    	eButton.style.color = "";
    }
    e nel tag <td> lo richiamo così:

    <td id="TL" onmouseover="TL(this);" onmouseout="TL_(this);" onclick="iframe.location.href=('link.php?id=index' )">
    Home
    </td>

    e fin qui tutto regolare.

    il prob è che lo script che ho io per l'effetto fade sul testo entra in funzione solo se metto il testo 'Home' tra il tag Home e di conseguenza l'effetto lo fa solo se si passa il mouse sul testo e non lo fa se si passa il mouse (per es) subito da parte. Ora, mi chiedo, e possibile abbinare l'effetto su <td> e nello stesso tempo il fade sul testo? in modo che anche se si passa il mouse su <td> il teso fa il fade? :master:
    spero che avete compreso cosa intendo

    questo è il codice dell'effetto fade:
    codice:
    fadeColor = "#FFFFFF";
    
    stepIn = 25;
    stepOut = 35;
    
    autoFade = true;
    
    sloppyClass = true;
    
    macCompat = false;
    
    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;
    
    fadeColor = dehexize(fadeColor.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 != "nofade") || srcElement.className == "fade" || (sloppyClass && srcElement.className.indexOf("fade") != -1)) {
    				if (!srcElement.startColor) {
    					srcElement.startColor = (srcElement.style.color)? srcElement.style.color: srcElement.currentStyle.color;
    					srcElement.startColor = dehexize(srcElement.startColor.toLowerCase());
    				}
    				var link = (macCompat? srcElement.name: srcElement.uniqueID);
    				if (link) fade(srcElement.startColor,fadeColor,link,stepIn);
    				else if (macCompat) alert("Error: Mac Compatility mode enabled, but link has no name.");
    		}
    	}
    }
    
    function domouseout() {
    	if (document.all){
    		var srcElement = event.srcElement;
    		if ((srcElement.tagName == "A" && autoFade && srcElement.className != "nofade") || srcElement.className == "fade" || (sloppyClass && srcElement.className.indexOf("fade") != -1)) {
    			var link = (macCompat? srcElement.name: srcElement.uniqueID);
    			if (link) fade(fadeColor,srcElement.startColor,link,stepIn);
    		}
    	}
    }
    
    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 && eval(fadeId[0])) {
    		var orig = eval(fadeId[0]);
    		setColor(orig.startColor[0],orig.startColor[1],orig.startColor[2],orig);
    		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;
    }
    ciauz

  2. #2
    up

  3. #3
    Utente di HTML.it L'avatar di v2v2
    Registrato dal
    Sep 2002
    Messaggi
    221
    Ti posto di seguito l'intero codice, penso di aver risolto il tuo problema.
    codice:
    <HEAD>
    <script>
    fadeColor = "#FFFF00";
    
    stepIn = 25;
    stepOut = 35;
    
    autoFade = true;
    
    sloppyClass = true;
    
    macCompat = false;
    
    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;
    
    fadeColor = dehexize(fadeColor.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.className == "fade") {
    				if (!srcElement.startColor) {
    					srcElement.startColor = (srcElement.style.color)? srcElement.style.color: srcElement.currentStyle.color;
    					srcElement.startColor = dehexize(srcElement.startColor.toLowerCase());
    				}
    				var link = (macCompat? srcElement.name: srcElement.uniqueID);
    				if (link) fade(srcElement.startColor,fadeColor,link,stepIn);
    				else if (macCompat) alert("Error: Mac Compatility mode enabled, but link has no name.");
    		}
    	}
    }
    
    function domouseout() {
    	if (document.all){
    		var srcElement = event.srcElement;
    		if (srcElement.className == "fade") {
    			var link = (macCompat? srcElement.name: srcElement.uniqueID);
    			if (link) fade(fadeColor,srcElement.startColor,link,stepIn);
    		}
    	}
    }
    
    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 && eval(fadeId[0])) {
    		var orig = eval(fadeId[0]);
    		setColor(orig.startColor[0],orig.startColor[1],orig.startColor[2],orig);
    		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;
    }
    
    function TL(eButton){
    	eButton.style.backgroundColor = "#4A79CD";
    	eButton.style.borderColor = "#2E4C80";
    	eButton.style.color = "#FFFFFF";
    }
    // Link ToolBar OUT
    function TL_(eButton){
    	eButton.style.backgroundColor = "";
    	eButton.style.borderColor = "";
    	eButton.style.color = "";
    }
    
    </script>
    </HEAD>
    
    <BODY>
    
    
    <table border="1" width="100%">
      <tr>
        <td width="50%" class="fade" id="TL" onmouseover="TL(this);" onmouseout="TL_(this);" 
    onclick="iframe.location.href=('link.php?id=index')" bgcolor="#FF0000">Home</td>
        <td width="50%">Cella senza effetto</td>
      </tr>
      <tr>
        <td width="50%" class="fade" id="TL" onmouseover="TL(this);" onmouseout="TL_(this);" 
    onclick="iframe.location.href=('link.php?id=index')" bgcolor="#FF0000">????????? </td>
        <td width="50%" class="fade">!!!!!!!!!!</td>
      </tr>
    </table>
    
    </BODY>
    Il tuo problema era quello del tag A necessario per azionare l'effetto
    codice:
    if (srcElement.tagName == "A" )
    L'ho sostituito con
    codice:
    srcElement.className == "fade")
    Adesso ogni cella dovrà avere CLASS="fade" per avere l'effetto

  4. #4
    mitico, funziona :metallica

    ciauz

  5. #5
    arrivato tardi nonostante il messaggio privato
    Luca Mascaro
    Usability e Accessibility Engineer, User Interface Designer/Engineer
    NOW BLOG
    W3C HTML & WCAG WG Member for IWA/HWG

  6. #6
    Originariamente inviato da blakwolf
    arrivato tardi nonostante il messaggio privato
    thx lo stesso

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.