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

    effetto background opaco tipo una finestra modale javascript

    Salve a tutti,
    come da topic come posso fare per avere un effetto background opaco (scuro), che si ha quando si utilizzano alcuni framework js e si mostrano finestre modali?

    Sicuramente serve la proprietà "opacity", ma non mi viene in mente come mettere quella specie di patina scura sopra alla pagina.

    Grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Ecco un esempio (molto grezzo)
    codice:
    <body>
      <div id="contenuto">
        qui il contenuto del sito
      </div>
      <div id="opacizzato">
        <div>
          
    
    contenuto della finestra modale</p>
        </div>
      </div>
    </body>
    
    CSS comune:
    body {
      width: 100%;
      height: 100%;
      overflow: auto;
    }
    
    CSS standard:
    #contenuto {
      position: absolute;
      top:0; left:0;
      ...
    }
    #opacizzato {
      display: none;
    }
    
    CSS in caso di finestra modale:
    #contenuto {
      ...
    }
    #opacizzato {
      display: block;
      position: absolute;
      top:0; left:0;
      width: 100%;
      height: 100%;
      z-index: 20;
      background: url(semitrasp.png);   /* immagine di sfondo semitrasparente */
    }
    #opacizzato div {
      position: absolute;
      width: 300px;
      height: 200px;
      left: 50%;
      top: 50%;
      margin-left: -150px;       /* la meta` di width;  */
      margin-top: -100px;       /* la meta` di height */
    }
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  3. #3

  4. #4
    GoodWeb
    Semplice soluzione .... interessante
    Ma se volessi aprire una pagina come layer, quindi senza dover riportare il contenuto sottostante come posso fare.

    O meglio come posso modificare la tua soluzione.
    Grazie per l'interesse
    olGerva | Internet: la libertà di scrivere porta al sapere di molti
    http://www.slypage.com - http://www.wire-net.it

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    @gervaweb
    Non ho capito cosa stai chiedendo.
    In particoalre la frase: "aprire una pagina come layer".

    Pero` se la domanda si riferisce ad un problema diverso rispetto ad aprire una finestrella rendendo tutto il resto opaco, ti prego di farlo in una nuova discussione.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  6. #6
    No no scusami, forse mi sono espresso male.

    Ho provato ad utilizzare il tuo codice e ho ottenuto il risultato,

    ma solo riportando sia la pagina origine <div id="contenuto">qui il contenuto del sito</div>

    e la pseudo finestra <div id="opacizzato">.

    Sinceramente ho navigato in rete per cercare diverse soluzioni tra cui: GreyBox, modalbox ... ma tutte implicano l'utilizzo di classi e molto codice rispetto alla tua estremamente semplice.

    Mi chiedevo se la tua soluzione, vista la sua semplicità, poteva essere implementata in una mia pagina dove alla pressione di un link, si apra una pagina "opaca" con del contenuto, senza dover riportare sia la pagina d'origine come quella nuova.
    Premetto che non sono una cima in programmazione e forse la soluzione è più semplice di quella che sia, ma se mi vuoi aiutare e illustrare l'eventuale strada te ne sare grato.

    Spero di essermi spiegato meglio
    Ciao e grazie
    olGerva | Internet: la libertà di scrivere porta al sapere di molti
    http://www.slypage.com - http://www.wire-net.it

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    La "mia" soluzione e` una bozza molto grezza, per cui e` molto semplificata rispetto ad una soluzione reale.

    E la mia soluzione prevede che l'offuscamento della pagina sia generato da un evento JS (non avrebbe senso altrimenti). Pero` la finestra opaca e la finestrella con il messaggio devono essere presenti prima dell'evento che li fa visualizzare (indicativamente essere caricati assieme al resto della pagina - con eccezioni in caso di uso di AJAX o sim). Quello che eventualmente si puo` modificare e` il testo contenuto nella finestrella, ma questo esula dagli scopi di questo thread.

    Il codice JS potrebbe essere (esempio che utilizza l'evento click su un link):
    codice:
    <noscript>Questo bottone funziona solo se JS e` attivo.&amp;nbsp;</noscript>
    clicca qui
    Occore poi una piccola modifica del codice HTML e del CSS rispetto a prima:
    codice:
    HTML:
    <body>
      <div id="contenuto">
        qui il contenuto del sito
      </div>
      <div id="opacizzato" class="nascosto">
        <div>
          
    
    contenuto della finestra modale</p>
          
    
    chiudi la finestra opaca</p>
        </div>
      </div>
    </body>
    
    CSS:
    #opacizzato.nascosto {
      display: none;
    }
    
    #opacizzato.lovedo {
      position: absolute;
      top:0; left:0;
      width: 100%;
      height: 100%;
      z-index: 20;
      background: url(semitrasp.png);   /* immagine di sfondo semitrasparente */
    }
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  8. #8
    Grazie per la celere risposta....
    ma data la mia poca dimestichezza con Javascript non ho afferrato bene quello che dici.

    Dando per scontato la soluzione anche "grezza" ma sinceramente estremamente semplice e interessante, non ho capito se sia possibile avere una cosa del genere e come:

    - una pagina con del contenuto e quant'altro
    - nella stessa pagina, un link che apra un nuovo contenuto sfruttando la tua semplice soluzione, offuscando il contenuto sottostante e caricando con eventualmente un include php il resto.

    Grazie e scusa se sono così "testone" ma proprio non ci sono arrivato alla soluzione
    olGerva | Internet: la libertà di scrivere porta al sapere di molti
    http://www.slypage.com - http://www.wire-net.it

  9. #9
    Originariamente inviato da gervaweb
    - una pagina con del contenuto e quant'altro
    - nella stessa pagina, un link che apra un nuovo contenuto sfruttando la tua semplice soluzione, offuscando il contenuto sottostante e caricando con eventualmente un include php il resto.

    Grazie e scusa se sono così "testone" ma proprio non ci sono arrivato alla soluzione
    Guarda... prendi il codice che ti ha passato... lo copi, lo incolli on un file vuoto.
    Poi leggi una paio di guide e DOPO lo manipoli...

    E' più facile a farsi che a spiegarsi... basta provare...
    Fantasupermegafavolipermeramagicultra irresistibili
    4 10 30 100 1001 personaggi insuperabili fantaincredibili ultraimpossibili iperterribili irresistibili!!!

    "... a quell'età ... bastava un dito per fare la pace ..."
    fotine

  10. #10
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Originariamente inviato da gervaweb
    Grazie per la celere risposta....
    ma data la mia poca dimestichezza con Javascript non ho afferrato bene quello che dici.

    Dando per scontato la soluzione anche "grezza" ma sinceramente estremamente semplice e interessante, non ho capito se sia possibile avere una cosa del genere e come:

    - una pagina con del contenuto e quant'altro
    - nella stessa pagina, un link che apra un nuovo contenuto sfruttando la tua semplice soluzione, offuscando il contenuto sottostante e caricando con eventualmente un include php il resto.

    Grazie e scusa se sono così "testone" ma proprio non ci sono arrivato alla soluzione
    Nel file HTML deve esserci:
    - il contenuto vero della pagina (racchiuso in un <div>);
    - un altro <div> contenente il layer (livello) con sfondo semitrasp. e il messaggio
    I due oggetti sono posizionati in modo assoluto, nella stessa posizione, per cui risultano sovrapposti.
    Questo esiste gia` fin dall'inizio. Solo che il livello superiore (quello con sfondo semitrasp) non viene visualizzato, avendo l'attributo CSS display:none;

    Quello che fa il JS e` semlicemente rendere visibile il layer superiore (e con l'altro bottone renderlo invisibile).

    Nota che in questo il PHP non c'entra. I due livelli ci sono comunque nella pagina; devono venir precaricati all'inizio.
    Se vuoi una cosa dinamica a livello server, ilprocesso e` molto piu` complesso, e necessita di strumenti tipo PHP o AJAX, che pero` esulano dagli scopi di questo forum (per quelli devi rivolgerti in PHP o JS rispettivamente).
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

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.