Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    1,786

    selettore di colore on-line

    Salve,

    ho fatto sulla base di questo selettore di colore

    quest'altro selettore di colore: cliccare


    che ha le seguenti variazioni rispetto il precedente:

    quello nuovo su basa su di una gif, il vecchio no.

    il nuovo inserisce solo il colore in una casella di input in base al contagoccie, mentre il vecchio appariva una finestra dove si digita il testo.

    Il problema sta che il nuovo js, presenta questo bug: non seleziona in modo corretto i colori, ma vede solo il viola.


    Di sicuro del nuovo js oltre ad esserci cose in + (movimento del mouse sulle assi x - y che non sono riuscito a togliare, )
    ha l'algoritmo di selezione sbagliato.

    Qualcuno di voi, può per favore sistemarlo o darmi qualche dritta ?

    Grazie !
    [Scambio Links a Tema] Contattatemi in Privato x + Info.

  2. #2
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Bentornato dalle ferie

    Questa la mia versione (molto grezza) dello script: ho riscritto diverse parti... compreso alcuni attributi del css.
    codice:
    var a;
    var cc;
    
    function capture() {
     initColor();
     if(document.layers) {
      layobj = document.layers['wheel'];
      layobj.document.captureEvents(Event.MOUSEMOVE);
      layobj.document.onmousemove = mouseMoved;
     }
     else if (document.all) {
      layobj = document.all["wheel"];
      layobj.onmousemove = mouseMoved;
       }
     else if (document.getElementById) {
      window.document.getElementById("wheel").onmousemove = mouseMoved;
     }
    }
    
    function mouseMoved(e) {
     if (document.layers) {
      x = e.layerX;
      y = e.layerY;
     }
     else if (document.all) {
      x = event.offsetX;
      y = event.offsetY;
     }
     else if (document.getElementById) {
      x = (e.pageX - document.getElementById("wheel").offsetLeft);
      y = (e.pageY - document.getElementById("wheel").offsetTop);
     }
    
    // identifico il range
    
    rd=255 // valori dei colori base a destra
    gd=255
    bd=255
    
    rs=0 // valori dei colori base a sinistra
    gs=0
    bs=0
    
    px=x-363 // posizione del cursore - posoizione inizio colore attuale
    rng=416-363 // range della finestra fra due colori
    
    if(x<363) {
    	rd=rs
    	gd=gs
    	bd=bs
    	rs=0
    	gs=255
    	bs=0
    	px=x-313
    	rng=50
    } 
    if(x<313) {
    	rd=rs
    	gd=gs
    	bd=bs
    	rs=0
    	gs=255
    	bs=255
    	px=x-260
    	rng=53
    } 
    if(x<260) {
    	rd=rs
    	gd=gs
    	bd=bs
    	rs=0
    	gs=0
    	bs=255
    	px=x-207
    	rng=47
    } 
    if(x<207) {
    	rd=rs
    	gd=gs
    	bd=bs
    	rs=255
    	gs=0
    	bs=255
    	px=x-155
    	rng=52
    } 
    if(x<155) {
    	rd=rs
    	gd=gs
    	bd=bs
    	rs=255
    	gs=0
    	bs=0
    	px=x-103
    	rng=48
    } 
    if(x<103) {
    	rd=rs
    	gd=gs
    	bd=bs
    	rs=255
    	gs=255
    	bs=0
    	px=x-52
    	rng=51
    } 
    if(x<52) {
    	rd=rs
    	gd=gs
    	bd=bs
    	rs=255
    	gs=255
    	bs=255
    	px=x
    	rng=52
    } 
    // ora calcolo la percentuale di ciascun colore
    pr = parseInt((rd-rs)/rng*px+rs)%256
    pg = parseInt((gd-gs)/rng*px+gs)%256
    pb = parseInt((bd-bs)/rng*px+bs)%256
    
    // trasformo in exa
    c="0123456789ABCDEF"
    cc = "#" + 
    	c.charAt(parseInt(pr/16))+c.charAt(parseInt(pr%16))+
    	c.charAt(parseInt(pg/16))+c.charAt(parseInt(pg%16))+
    	c.charAt(parseInt(pb/16))+c.charAt(parseInt(pb%16))
    
    
       hoverColor();
       return false;
    }
    
    function hoverColor() {
     document.getElementById(a+'Div').style.backgroundColor = cc;
     document.forms[0].elements[a].value = cc;
     return false;
    }
    
    function pickColor() {
     document.getElementById(a+'Div').style.backgroundColor = cc;
     document.forms[0].elements[a].value = cc;
     document.getElementById('wheel').style.visibility='hidden';
     document.getElementById('wheel').style.display='none';
    }
    
    function initColor() {
    	document.getElementById('wheel').style.visibility='visible';
    	document.getElementById('wheel').style.display='inline';
    }
    
    function mostraDiv(dd){
    	if(document.getElementById(dd).style.visibility=='hidden'){	
    		nascondiSelect('hidden');
    		document.getElementById(dd).style.visibility='visible';
    		document.getElementById(dd).style.display='inline';
    	}else{
    		nascondiSelect('visible');
    		document.getElementById(dd).style.visibility='hidden';
    		document.getElementById(dd).style.display='none';
    	}
    }
    ciao
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    1,786
    Grazie 10000000000000000 !

    ciao
    [Scambio Links a Tema] Contattatemi in Privato x + Info.

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    1,786
    mi serve un'altra modifica per favore:

    il selettore di colore deve essere sempre visibile del div wheel (non si deve nascondere +)

    inoltre quando clicco deve aprire una finestra come quella allegata,

    Il testo che ritorna deve andare nella casella di input con nome "messaggio" (non deve essere + variabile) e deve avere questa sintesi:

    codice:
    [COLORE=#001eff]Prova[/COLORE]
    Me lo puoi sistemare per favore ?

    grazie 1000000 !
    [Scambio Links a Tema] Contattatemi in Privato x + Info.

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    1,786
    [Scambio Links a Tema] Contattatemi in Privato x + Info.

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    1,786
    up
    [Scambio Links a Tema] Contattatemi in Privato x + Info.

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.