Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it L'avatar di wino_7
    Registrato dal
    Dec 2006
    Messaggi
    537

    Div semitrasparenti con javascript

    Ragazzi sapere dirmi come posso rendere un div semitrasparente con javascript?
    Una volta avevo visto uno script che cambiava l'opacità ma non ricordo bene.

  2. #2
    Dalla tua domanda non si capisce se vuoi un effetto fade che cambi l'opacità di un elemento gradualmente o se semplicemente vuoi settare l'opacità a un certo valore.
    Nel secondo caso basta un pò di css.

  3. #3
    Utente di HTML.it L'avatar di wino_7
    Registrato dal
    Dec 2006
    Messaggi
    537
    Voglio settare l'opacità a un certo valore.
    Con i css so come fare, ma il problema è il Magnifico IE 6.0, è per questo che voglio usare javascript perchè forse risolverei anche con quel Browser di me...a.
    Sai dirmi come fare?

  4. #4
    Sulla m***a siamo d'accordo, in ogni caso anche IE permette, con una sintassi molto fantasiosa, di modificare l'opacità col css:
    codice:
    filter:alpha(opacity=80);
    Dove i valori vanno da 0 a 100.

    Se proprio vuoi usare javascript puoi usare questa funzioncina:
    codice:
    function setOpacity(obj, op) {
      if(obj.filters)
        obj.filters.alpha.opacity = op + "";
      else {
        var s = obj.style;
        s.opacity = s.KhtmlOpacity = s.MozOpacity = op / 100 + "";
      }
    }
    L'ho scritta al volo quindi nn so se funziona, comunque devi passare due argomenti, l'oggetto html e l'opacità ( in scala da 1 a 100 come in IE )

  5. #5
    Utente di HTML.it L'avatar di wino_7
    Registrato dal
    Dec 2006
    Messaggi
    537
    Ho completato la funzione ma mi dice che filters non è un oggetto.
    Ma forse ho sbagliato io
    Codice PHP:
    <script type="text/javascript">
    var 
    obj document.getElementById("raggruppa");
    var 
    op 65;

    function 
    setOpacity(objop) {
      if(
    obj.filters)
        
    obj.filters.alpha.opacity op "";
      else {
        var 
    obj.style;
        
    s.opacity s.KhtmlOpacity s.MozOpacity op 100 "";
      }
    }
    </script> 

  6. #6
    Non vorrei dire boiate ma credo che dipenda dal doctype. Questo dovrebbe funzionare in ogni caso:
    codice:
    <script type="text/javascript">
    var obj = document.getElementById("raggruppa");
    var op = 65;
    
    function setOpacity(obj, op) {
      if(navigator.appName == "Microsoft Internet Explorer")
        obj.style.filter = "alpha(opacity=" + op + ")";
      else {
        var s = obj.style;
        s.opacity = s.KhtmlOpacity = s.MozOpacity = op / 100 + "";
      }
    }
    </script>

  7. #7
    Utente di HTML.it L'avatar di wino_7
    Registrato dal
    Dec 2006
    Messaggi
    537
    Purtoppo non funziona nemmeno ora mi viene detto che alla riga 6 'style' è nullo o non è un oggetto.

  8. #8
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    state dimenticando un requisito fondamentale per IE per applicare l' opacita' e filtri in generale ad un elemento,
    come scritto qui http://msdn2.microsoft.com/en-us/library/ms532847.aspx
    Almost any object can have filters applied to it. However, the object that the filter is applied to must have layout before the filter effect will display. Put simply, having layout means that an object has a defined height and width. Some objects, like form controls, have layout by default. All other filterable objects gain layout by setting the height or width property, setting the position property to absolute, setting the writingMode property to tb-rl, or setting the contentEditable property to true.

    You can also apply a filter to the BODY element. The BODY element automatically has layout because it specifically contains the client area of the window.
    l' elemento deve "avere layout" (has layout),
    il che si ottiene, oltre che con i metodi sopra citati, aggiungendo zoom:1 nella regola css per quell' elemento

  9. #9
    Buono a sapersi, però non capisco perchè obj.filters.alpha.opacity non mi funzioni e invece obj.style.filter si ( ho IE6 ). Dipende davvero dal doctype o non c'entra una mazza?
    Per quanto riguarda il problema di wino credo che in realtà non dipendi da questo, infatti gli viene l'errore "style è nullo o non è un oggetto"
    Hai richiamato la funzione correttamente?
    codice:
    setOpacity(document.getElementById("raggruppa"), 65);
    EDIT: Mi rispondo da solo; per poter usare obj.filters.alpha.opacity è necessario settare filter:alpha(opacity=xx) nel css. Ora solo non capisco perchè questa limitazione

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.