Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11

Discussione: alpha su firefox

  1. #1

    alpha su firefox

    salve a tutti, sto usando un javascrit per un effetto fadin/out su delle foto.. in IE tutto bene, ma firefox non lo vede proprio..
    qualche suggerimento?
    ecco il codice

    codice:
    <script type="text/javascript" language="JavaScript">
    <!--
    nereidFadeObjects = new Object();
    nereidFadeTimers = new Object();
    
    /* object - image to be faded (actual object, not name);
     * destop - destination transparency level (ie 80, for mostly solid)
     * rate   - time in milliseconds between trasparency changes (best under 100)
     * delta  - amount of change each time (ie 5, for 5% change in transparency)
     */
    
    function nereidFade(object, destOp, rate, delta){
    if (!document.all)
    return
        if (object != "[object]"){
            setTimeout("nereidFade("+object+","+destOp+","+rate+","+delta+")",0);
            return;
        }
        clearTimeout(nereidFadeTimers[object.sourceIndex]);
        diff = destOp-object.filters.alpha.opacity;
        direction = 1;
        if (object.filters.alpha.opacity > destOp){
            direction = -1;
        }
        delta=Math.min(direction*diff,delta);
        object.filters.alpha.opacity+=direction*delta;
        if (object.filters.alpha.opacity != destOp){
            nereidFadeObjects[object.sourceIndex]=object;
            nereidFadeTimers[object.sourceIndex]=setTimeout("nereidFade(nereidFadeObjects["+object.sourceIndex+"],"+destOp+","+rate+","+delta+")",rate);
        }
    }
    -->
    </script>
    codice:
    [img]image1.jpg[/img]

  2. #2
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    codice:
    object.filters.alpha.opacity+=direction*delta;
    filters utilizza un ActiveX (presente solo su Explorer)

    Per il resto dei browser in circolazione prova ad aggiungere subito dopo quell'istruzione anche
    codice:
    object.style.opacity+= (direction*delta)/100;
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  3. #3
    aggiunto ma continua a non vederlo..
    a meno che non va aggiunto anche nel resto delle istruzioni, ma non saprei come...

    codice:
    </style>
    <script type="text/javascript" language="JavaScript">
    <!--
    nereidFadeObjects = new Object();
    nereidFadeTimers = new Object();
    
    /* object - image to be faded (actual object, not name);
     * destop - destination transparency level (ie 80, for mostly solid)
     * rate   - time in milliseconds between trasparency changes (best under 100)
     * delta  - amount of change each time (ie 5, for 5% change in transparency)
     */
    
    function nereidFade(object, destOp, rate, delta){
    if (!document.all)
    return
        if (object != "[object]"){
            setTimeout("nereidFade("+object+","+destOp+","+rate+","+delta+")",0);
            return;
        }
        clearTimeout(nereidFadeTimers[object.sourceIndex]);
        diff = destOp-object.filters.alpha.opacity;
        direction = 1;
        if (object.filters.alpha.opacity > destOp){
            direction = -1;
        }
        delta=Math.min(direction*diff,delta);
        object.filters.alpha.opacity+=direction*delta;
    	object.style.opacity+= (direction*delta)/100; 
        if (object.filters.alpha.opacity != destOp){
            nereidFadeObjects[object.sourceIndex]=object;
            nereidFadeTimers[object.sourceIndex]=setTimeout("nereidFade(nereidFadeObjects["+object.sourceIndex+"],"+destOp+","+rate+","+delta+")",rate);
        }
    }
    -->
    </script>

  4. #4
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    purtroppo lo script è stato pensato solo per IE, difatti quell'istruzione

    object.filters.alpha.opacity

    appare in altri punti dello script (senza considerare che la prima istruzione della funzione

    if (!document.all) return;

    esclude tutti gli altri browser e va quindi rimossa)

    Se mi dici esattamente cosa deve fare questa funzione e a cosa va applicata è più facile proportene una crossbrowser (questa mi sembra un tantino obsoleta e se devo essere sincero in un paio di punti quasi incomprensibile)
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  5. #5
    grazie mille, molto gentile
    allora ho una pagina con delle immagini che vorrei fossero semitrasparenti all'apertura della pagina e arrivassero ad alpha 100 solo al rollover..
    non so se c'è qualcosa di semplice per farlo..

  6. #6
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    ok, prova questa variante... spero di non aver fatto troppi errori/orrori vista l'ora...

    codice:
    nereidFadeObjects = new Object();
    nereidFadeTimers = new Object();
    
    /* object - image to be faded (actual object, not name);
     * destop - destination transparency level (ie 80, for mostly solid)
     * rate   - time in milliseconds between trasparency changes (best under 100)
     * delta  - amount of change each time (ie 5, for 5% change in transparency)
     */
    
    function setOpacity(obj, op) {
       if (op == 0) op = 1; 
       if (obj.filters.alpha.opacity) obj.filters.alpha.opacity = op;
       obj.style.opacity = (op/100);
    }
    
    function getOpacity(obj) {
       return (obj.filters.alpha.opacity)? obj.filters.alpha.opacity : (obj.style.opacity * 100);
    }
    
    
    function nereidFade(object, destOp, rate, delta){
    
        if (object != "[object]"){
            setTimeout("nereidFade("+object+","+destOp+","+rate+","+delta+")",0);
            return;
        }
        curropacity = getOpacity(object);
        clearTimeout(nereidFadeTimers[object.sourceIndex]);
        diff = destOp - curropacity;
    
        direction = (curropacity > destOp) -1 : 1;
    
        delta=Math.min(direction*diff, delta);
        setOpacity(object, (curropacity + (direction * delta)));
    
        curropacity = getOpacity(object);
        if (curropacity != destOp){
            nereidFadeObjects[object.sourceIndex]=object;
           nereidFadeTimers[object.sourceIndex]=setTimeout("nereidFade(nereidFadeObjects["+object.sourceIndex+"],"+destOp+","+rate+","+delta+")",rate);
        }
    }
    </script>
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  7. #7
    non va nè su firefox nè su ie

  8. #8
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    scusa... ecco qui: ti posto un esempio funzionante (almeno su opera e firefox)
    A te il compito di provarlo con IE

    codice:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html>
    <head>
    
    <script type="text/javascript">
    function setOpacity(obj, op) {
       if (op == 0) op = 1; 
       if (obj.filters) obj.filters.alpha.opacity = op;
       obj.style.opacity = (op/100);
    }
    
    function getOpacity(obj) {
       return (obj.filters)? obj.filters.alpha.opacity : (obj.style.opacity * 100);
    }
    
    
    function nereidFade(object, destOp, rate, delta){
    
        curropacity = getOpacity(object);
        diff = destOp - curropacity;
        direction = (curropacity > destOp)? -1 : 1;
    
        delta=Math.min(direction*diff, delta);
        setOpacity(object, (curropacity + (direction * delta)));
    
        curropacity = getOpacity(object);
        if (curropacity != destOp){
            setTimeout(function() {
                nereidFade(object, destOp, rate, delta);
            }, rate); 
        }
    }
    </script>
    
    
    </head>
    
    
    <body>
        [img]file.jpg alt=[/img]
    
    </body>
    </html>
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  9. #9
    Grande! Funziona alla perfezione anche su IE .
    Grazie infinite, adesso cerco di capire come lo hai fatto

  10. #10
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    Originariamente inviato da claire
    Grande! Funziona alla perfezione anche su IE .
    Grazie infinite, adesso cerco di capire come lo hai fatto
    non è stato difficile:
    è bastato non voler ostinarmi a recuperare per forza parte di codice che avevi prima
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

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.