Pagina 1 di 5 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 48
  1. #1

    [PILLOLA] Fede sul Colore del Testo

    ce ne sono molte, ma questa permette:
    - di passare DA un colore AD un altro a proprio piacere
    - di indicare i colori in formato #FFFFFF e non rgb(255,255,255)

    Codice PHP:
    function fade(idd,start,end,pausa){
        var 
    finiti,Sr,Sg,Sb,Er,Eg,Eb;
        
    finiti=Sr=Sg=Sb=Er=Eg=Eb=0;
        
    // controlla esistenza ID
        
    if(document.getElementById(idd)==null) { alert('L\\'elemento '+idd+' indicato per il fade di colore non è stato trovato'); return false; }
        // cambia colore
        document.getElementById(idd).style.color=start;
        // HEX->DEC
        Sr=parseInt(start.substr(1,2),16);
        Sg=parseInt(start.substr(3,2),16);
        Sb=parseInt(start.substr(5,2),16);
        Er=parseInt(end.substr(1,2),16);
        Eg=parseInt(end.substr(3,2),16);
        Eb=parseInt(end.substr(5,2),16);
        // modifica valori per il prossimo ciclo
        if(Sr==Er){ finiti++; }else{ Dr=Sr-Er; if(Dr>10) Dr=10; if(Dr<-10) Dr=-10; Sr-=Dr; }
        if(Sg==Eg){ finiti++; }else{ Dg=Sg-Eg; if(Dg>10) Dg=10; if(Dg<-10) Dg=-10; Sg-=Dg; }
        if(Sb==Eb){ finiti++; }else{ Db=Sb-Eb; if(Db>10) Db=10; if(Db<-10) Db=-10; Sb-=Db; }
        // DEC->HEX
        Sr=Sr.toString(16); if(Sr.length==1) Sr='
    0'+Sr;
        Sg=Sg.toString(16); if(Sg.length==1) Sg='
    0'+Sg;
        Sb=Sb.toString(16); if(Sb.length==1) Sb='
    0'+Sb;
        Er=Er.toString(16); if(Er.length==1) Er='
    0'+Er;
        Eg=Eg.toString(16); if(Eg.length==1) Eg='
    0'+Eg;
        Eb=Eb.toString(16); if(Eb.length==1) Eb='
    0'+Eb;
        start='
    #'+Sr+Sg+Sb;
        
    end=    '#'+Er+Eg+Eb;
        
    // riavvia se non è finito
        
    if(finiti<3setTimeout("SrCmndTstoEfftFade('"+idd+"', '"+start+"', '"+end+"', '"+pausa+"')"pausa);

    consigli?
    meglio inventare un for ed un array per evitare tutte quelle ripetizioni?

    esempio di utilizzo:
    Codice PHP:
    <div id="pippo">ciao</div>

    <
    script type="text/javascript">fade('pippo','#121212','#ffffff',20)</script> 
    Farmacia di Jarno - le mie pillole: Cookie [#780810], Dom4Php4 [#1123236], Fade [#1139489], getCssProperty [#1152911]
    Inchinatevi difronte al Prof! Nacchio!

    A me pare che l'uomo vada avanti con la retromarcia

  2. #2

    Re: [PILLOLA] Fede sul Colore del Testo

    Codice PHP:
        // riavvia se non è finito
        
    if(finiti<3setTimeout("[B]fade[/B]('"+idd+"', '"+start+"', '"+end+"', '"+pausa+"')"pausa); 
    Piccola correzione chiamavi una funzione inesistente

    ciao

  3. #3
    sì sì...mi sono dimenticato di cambiarlo
    Farmacia di Jarno - le mie pillole: Cookie [#780810], Dom4Php4 [#1123236], Fade [#1139489], getCssProperty [#1152911]
    Inchinatevi difronte al Prof! Nacchio!

    A me pare che l'uomo vada avanti con la retromarcia

  4. #4
    L'apostrofo su "L'elemento" manda un cicca lo script

    Bisogna o cambiare in doppi apici o mettere l'unescape penso

  5. #5
    si si ...tutti problemi di trascrizione e dell'editor del forum ...vediamo se sono più fortunato/attento:

    Codice PHP:
    function fade(idd,start,end,pausa){ 
        var 
    finiti,Sr,Sg,Sb,Er,Eg,Eb
        
    finiti=Sr=Sg=Sb=Er=Eg=Eb=0
        
    // controlla esistenza ID 
        
    if(document.getElementById(idd)==null) { alert('Questo elemento '+idd+' indicato per il fade di colore non è stato trovato'); return false; } 
        
    // cambia colore 
        
    document.getElementById(idd).style.color=start
        
    // HEX->DEC 
        
    Sr=parseInt(start.substr(1,2),16); 
        
    Sg=parseInt(start.substr(3,2),16); 
        
    Sb=parseInt(start.substr(5,2),16); 
        
    Er=parseInt(end.substr(1,2),16); 
        
    Eg=parseInt(end.substr(3,2),16); 
        
    Eb=parseInt(end.substr(5,2),16); 
        
    // modifica valori per il prossimo ciclo 
        
    if(Sr==Er){ finiti++; }else{ Dr=Sr-Er; if(Dr>10Dr=10; if(Dr<-10Dr=-10Sr-=Dr; } 
        if(
    Sg==Eg){ finiti++; }else{ Dg=Sg-Eg; if(Dg>10Dg=10; if(Dg<-10Dg=-10Sg-=Dg; } 
        if(
    Sb==Eb){ finiti++; }else{ Db=Sb-Eb; if(Db>10Db=10; if(Db<-10Db=-10Sb-=Db; } 
        
    // DEC->HEX 
        
    Sr=Sr.toString(16); if(Sr.length==1Sr='0'+Sr
        
    Sg=Sg.toString(16); if(Sg.length==1Sg='0'+Sg
        
    Sb=Sb.toString(16); if(Sb.length==1Sb='0'+Sb
        
    Er=Er.toString(16); if(Er.length==1Er='0'+Er
        
    Eg=Eg.toString(16); if(Eg.length==1Eg='0'+Eg
        
    Eb=Eb.toString(16); if(Eb.length==1Eb='0'+Eb
        
    start='#'+Sr+Sg+Sb
        
    end=    '#'+Er+Eg+Eb
        
    // riavvia se non è finito 
        
    if(finiti<3setTimeout("fade('"+idd+"', '"+start+"', '"+end+"', '"+pausa+"')"pausa); 

    Farmacia di Jarno - le mie pillole: Cookie [#780810], Dom4Php4 [#1123236], Fade [#1139489], getCssProperty [#1152911]
    Inchinatevi difronte al Prof! Nacchio!

    A me pare che l'uomo vada avanti con la retromarcia

  6. #6
    il fade solitamente è una dissolvenza mentre in questo caso si tratta di cambiare il colore, o gradiente, del testo.

    In generale preferisco poter riutilizzare il codice e riadattarlo in modo semplice, ecco una mia proposta bytefx style che oltre al colore del testo permette di cambiare altri tipi di colore ed ha funzioni in qualche modo riutilizzabili:
    codice:
    function gradient(id, start, end, speed, prop, callback){
    	var	style = document.getElementById(id).style,
    		i = setInterval(function(){
    			for(var	j = 0; j < 3; j++)
    				start[j] = gradient.run(start[j], end[j], speed);
    			style[prop] = gradient.color(start);
    			if(String(start) === String(end)) {
    				clearInterval(i);
    				if(callback)
    					callback(id);
    			}
    		}, 20);
    	start	= gradient.rgb(start.substring(1));
    	end	= gradient.rgb(end.substring(1));
    	speed	= speed || 10;
    	prop	= prop || "color";
    	return	i;
    };
    gradient.color	= function(c){return "#".concat(gradient.hex(c[0]), gradient.hex(c[1]), gradient.hex(c[2]))};
    gradient.hex	= function(rgb, c){return (c = rgb.toString(16)).length === 1 ? "0".concat(c) : c};
    gradient.rgb	= function(c){return [parseInt(c.substr(0,2), 16), parseInt(c.substr(2,2), 16), parseInt(c.substr(4,2), 16)]};
    gradient.run	= function(x, y, speed) {return x < y ? Math.min(x + speed, y) : Math.max(x - speed, y)};
    Questo è un esempio di come la funzione può essere usata:
    codice:
    onload = function(){
    	var	div = document.createElement("div");
    	div.id = "test";
    	div.appendChild(document.createTextNode("Hello Gradient !"));
    	document.body.appendChild(div);
    	gradient("test", "#000000", "#FFFFFF", 10, "color", function(id){
    		gradient(id, "#FFFFFF", "#000000", 20, "backgroundColor", function(id){
    			gradient(id, "#FFFFFF", "#676767", 5)
    		})
    	});
    };
    speed, prop e callback sono optional:
    speed assente: default 10
    prop assente: default "color"
    callback assente: default "un tubo"

    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  7. #7
    mannaggia ...ma perchè i tuoi interventi non fanno mai una piega

    scherzo, grazie
    Farmacia di Jarno - le mie pillole: Cookie [#780810], Dom4Php4 [#1123236], Fade [#1139489], getCssProperty [#1152911]
    Inchinatevi difronte al Prof! Nacchio!

    A me pare che l'uomo vada avanti con la retromarcia

  8. #8
    esempio 2, Flash rollOver style:
    codice:
    onload = function(){
    	var	div = document.createElement("div");
    	div.id = "test";
    	div.appendChild(document.createTextNode("Hello Gradient !"));
    	document.body.appendChild(div);
    	div.colors = ["#000000", "#ABABAB"];
    	div.bgcolors = ["#FFFFFF", "#000000"];
    	div.newGradient = function(gradients){
    		if(this.gradients) {
    			clearInterval(this.gradients[0]);
    			clearInterval(this.gradients[1]);
    		};
    		this.gradients = [gradient.apply(null, gradients[0]), gradient.apply(null, gradients[1])];
    	};
    	div.onmouseover = function(){
    		this.newGradient([
    			[this.id, this.colors[0], this.colors[1]],
    			[this.id, this.bgcolors[0], this.bgcolors[1], 10, "backgroundColor"]
    		])
    	};
    	div.onmouseout = function(){
    		this.newGradient([
    			[this.id, this.colors[1], this.colors[0]],
    			[this.id, this.bgcolors[1], this.bgcolors[0], 10, "backgroundColor"]
    		])
    	};
    };
    questo direi che è più interessante
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  9. #9
    ma tu ...sì tu ...chi sei? non sapevo che Dio conoscesse il javascript...

    sei sempre troppo avanti
    Farmacia di Jarno - le mie pillole: Cookie [#780810], Dom4Php4 [#1123236], Fade [#1139489], getCssProperty [#1152911]
    Inchinatevi difronte al Prof! Nacchio!

    A me pare che l'uomo vada avanti con la retromarcia

  10. #10
    ahh...l'hai estrapolata da "bytefx" ...l'avevo visto ma me ne ero dimenticato ...certo che questi frameworks javascript sono veramente affascinanti...
    Farmacia di Jarno - le mie pillole: Cookie [#780810], Dom4Php4 [#1123236], Fade [#1139489], getCssProperty [#1152911]
    Inchinatevi difronte al Prof! Nacchio!

    A me pare che l'uomo vada avanti con la retromarcia

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 © 2025 vBulletin Solutions, Inc. All rights reserved.