1. [Javascript] Script collegamento arcobaleno

    Avatar
    Tags
    Javascript
    By Red eYe il 30 Nov. 2008
     
    +1   -1    5 Comments   8,489 Views
    .

    Javascript



    Colorazione dei collegamenti al passaggio del mouse



    Lo script vi presenterò oggi è veramente originale. Finora non ho visto nessun sito presentare uno script come questo. Il fine di questo script è quello di migliorare l'aspetto grafico del sito: tutti i collegamenti che la pagina presenta, al passaggio del mouse, verranno colorati di un colore scelto casualmente. In parole semplici, se creiamo un collegamento con il solito tag a:
    HTML
    <a href="#">Questo è un collegamento</a>

    questo inizialmente avrà un colore proprio, ma quando ci si passa sopra con il mouse, il suo colore diventerà il colore casuale del momento e, a differenza dei semplici effetti a:hover di CSS, rimarrà così anche se il mouse si dovrà spostare dal collegamento, fino a quando non ci si passa di nuovo con il mouse: così cambierà il suo colore di nuovo. :woot:
    L'effetto prodotto è una serie di collegamenti ognuno di un colore diverso o simile (visto che il colore che verrà assegnato al collegamento è generato in continuazione, a volte può capitare che si avranno 2 colori dei collegamenti uguali), ma il meglio è quando si hanno tanti collegamenti in serie: se proverete a passare velocemente il mouse in ordine, vedrete che assumeranno una colorazione a sfumatura.

    Il codice è questo:

    HTML
    <script type="text/javascript">
    var r = 255;
    var v = 0;
    var b = 0;
    var stato = 0;
    var variazione = 17;
    var coloreAttuale= "#FF0000";

    function getNextColor(){
    switch(stato){
    case 0:
    r-=variazione;
    if(r<0){ r = 0;}
    v+=variazione;
    if(v
    >
    =255){ v = 255;stato = 1;
    }
    break;
    case 1:
    v-=variazione;
    if(v<0){ v = 0;}
    b+=variazione;
    if(b
    >
    =255){b = 255;stato = 2;}
    break;
    case 2:
    b-=variazione;
    if(b<0){ b = 0; }
    r+=variazione;
    if(r
    >
    =255){r = 255; stato = 0;}
    break;
    }
    return "#"+toEsa(r)+toEsa(v)+toEsa(b);
    }

    function toEsa(valore){
    var daRest = valore.toString(16);

    if(daRest.length==1)
    daRest= "0"+daRest;

    return daRest;
    }
    setInterval("coloreAttuale= getNextColor()",50);

    var anchors = document.getElementsByTagName("a");

    for(var i = 0; i< anchors.length;i++){
    anchors[i].onmouseover = function(){
    this.style.color = coloreAttuale;
    }
    }
    </script>


    A differenza della maggior parte dei codici, questo dovrà essere inserito in fondo alla pagina, cioè come ultime riga prima della chiusura del tag body.

    Questo script utilizza i metodi toString() e document.getElementsByTag() che purtroppo non sono utilizzabili su forumfree/forumcommunity/blogfree per motivi legati alla integrità del forum/blog. Il circuito ha deciso di "disabilitarli" in quanto è possibile scrivere dei codici che potrebbero, ad esempio, rendere inutilizzabili tutti i collegamenti della homepage (vietando, quindi, agli admin di accedere alla sezione amministrazione per disabilitare il codice dannoso) rendendo il forum letteralmente inutilizzabile.

    Edited by Red eYe - 30/11/2008, 03:29
      Share  
     
    .

Comments
  1. jascha
        +1   -1
     
    .

    User deleted


    Ciao bello l'ho appena prova , è proprio un peccato che nn si possa usare nei form.Community , avevo già delle idee. Grazie cmq
     
    Top
    .
  2. flexlex
        +1   -1
     
    .

    User deleted


    volevo creare uno script simile per forumcommunity, blogfree e forumfree.
    diciamo che lo scirpt funziona soltanto sui link selezionati.
    inserire questo script in cima al sito
    CODICE
    <script type="text/javascript">
    colorestandard="black"
    document.write("<style>a[onmouseover=\"color(this)\"] {color:"+colorestandard+"}</style>")
    function color(obj){
    link=obj
    link.onmouseout=function(){
    start=0
    link.style.color=colorestandard+" !important"
    }
    document.ontouchmove=function(){
    start=0
    link.style.color=colorestandard+" !important"
    }
    start=1
    setTimeout("lol()",10)
    i=0
    }
    function lol(){
    if(start==1){
    i++
    link.style.color="hsl("+i+",100%,45%) !important"
    if(i==360){
    i=0
    }
    setTimeout("lol()",10)
    }
    }
    </script>


    e poi aggiungere ai link desiderati
    CODICE
    onmouseover="color(this)"

    per esempio:
    CODICE
    <a href="#" onmouseover="color(this)">ciao</a>




    cosa ne pensate :)
     
    Top
    .
  3. Red eYe
        +1   -1
     
    .

    User deleted


    Ciao flex,

    ho provato ad utilizzare il codice con firefox e a prima vista mi sembrava che non funzionare; poi ho provato a visualizzare la pagina di prova sotto chrome e l'ho visto funzionare. Il problema sta negli !important che hai messo all'interno del codice; sembra che IE e Firefox non li riescano ad interpretare nel modo corretto. In questo caso, mi pare che tu li possa togliere senza molte complicazioni, anche perché assegnando uno stile via script questo, almeno in teoria, dovrebbe avere la precedenza sui CSS (anche non sono completamente sicuro che avesse più priorità degli !important).

    Comunque è molto carino come script. :P

    PS: a cosa corrisponde l'evento ontouchmove ?
     
    Top
    .
  4. flexlex
        +1   -1
     
    .

    User deleted


    Su alcuni siti forumcommunity dove ho testo il codice, funzionava solo con "important"
    L'evento "ontouchmove" è legato ai dispositivi mobili con un touchscreen, senza quel evento, se si premesse un link, anche dopo avere rimosso il dito, i colori continuerebbero a cambiare e ogni nuovo pink premuto, cambiare ne sempre piu in fretta.
    I dispositivi con touchscreen, usano i handler "ontouchstart", "ontouchmove" e "ontouchend" per un dito e "ongesturestart", "ongesturechange" e "ongesturend" per gesti come "pizzicare e rotare" con due dita.
     
    Top
    .
  5. Locktrork
        +1   -1
     
    .

    User deleted


    hello there and thanks for your info ? I have certainly picked up anything new from right here. I did on the other hand experience several technical issues using this website, since I skilled to reload the web site lots of times previous to I could get it to load properly. I were wondering if your hosting is OK? Now not that I’m complaining, but sluggish loading instances times will very frequently impact your placement in google and could damage your high-quality score if advertising and marketing with Adwords. Well I am including this RSS to my email and could look out for a lot more of your respective exciting content. Ensure that you replace this again very soon..
     
    Top
    .
5 replies since 30/11/2008, 02:55   8,489 views
  Share  
.