Problema gestione galleria fotografica in java

  • Creatore Discussione Creatore Discussione Ania81
  • Data di inizio Data di inizio

Ania81

Nuovo Utente
23 Ago 2013
12
0
0
Salve,

ho un problema con la gestione di una galleria fotografica.
In sostanza io dovrei avere una serie di album (una lista), cliccando su uno di questi devono comparire le anteprime delle immagini e poi cliccando su una di queste comparirà l'immagine in grande con il classico lightbox.

La struttura è questa:

HTML:
<head>
<script type="text/javascript" language="javascript">
function visualizza(id){
  if (document.getElementById){
    if(document.getElementById(id).style.display == 'none'){
      document.getElementById(id).style.display = 'block';
    }else{
      document.getElementById(id).style.display = 'none';
    }
  }
}
</script>
</head>

<body>
<!-- Inizio codice DIV #album1 -->
<div id="album1"><a href="#" onclick="visualizza('Interni'); return false">
Interni</a></div>
<!-- Fine codice DIV #album1 -->

<!-- Inizio codice DIV #Interni -->
<div id="Interni" style="display:none">
<a href="jpg/lightbox/img/immagine.jpg" data-lightbox="gallery-1" title="Didascalia">
<img src="jpg/lightbox/img/immagine_thumb.jpg" width="100%" /></a>
</div>

</body>


La funzione "visualizza" l'ho presa da qualche sito ( mi sa proprio da questo in realtà!:D) e funziona tutto perfettamente nella versione qui sopra.

Il problema è il seguente: se io voglio avere più album quando ne apro uno, se non chiudo quello vecchio a mano, le anteprime si sommano, aprendo i vari div uno di seguito all'altro...

Capisco benissimo che non c'è nessun problema nella funzione ma che la questione è che questa non è adatta al mio intento, ma io sono praticamente a zero su java e vorrei capire se esiste un modo di bypassare il problema.

Grazie!
 
Ciao, puoi iniziare la funzione chiudendo per prima cosa tutti gli album
Codice:
function visualizza(id){
            if (document.getElementById){
                
                document.getElementById('Interni').style.display == 'none';
                document.getElementById('Esterni').style.display == 'none';
                
                if(document.getElementById(id).style.display == 'none'){
                    document.getElementById(id).style.display = 'block';
                }else{
                    document.getElementById(id).style.display = 'none';
                }
            }
        }
ma io sono praticamente a zero su java
Questo linguaggio non è java ma javascript
 
Ciao Criric,

grazie mille per la risposta. Sono riuscita a leggerla e provare la tua soluzione solo ora...

Solo che scritta così non funzionava... Non so se ho interpretato bene il tuo codice ma la riga in cui dici:
Codice:
                document.getElementById('Interni').style.display == 'none';
                document.getElementById('Esterni').style.display == 'none';

stai assegnando un valore (non so se si dica così) giusto? E cercando un po' ho letto che == serve a controllare un valore, mentre per assegnarlo serve =.
Dico stupidagini? Non ho capito se è un errore di battitura o se non ho capito un tubo di quello che volevi fare... :confused:

Anyway, mettendo = il codice funziona! Mi perdo il tasto chiudi (che nel codice che ho postato neanche c'è) ma ne faccio tranquillamente a meno! :D

Grazie mille! E grazie per la correzione su java e javascript! Mi sono andata a leggere la differenza e ho scoperto che la mia ignoranza va oltre l'abisso :D
 
Colpa mia :crying:, ho sbagliato a scrivere : ci va un solo = perchè è un assegnazione e non un confronto
l'idea era quella di assegnare il "display:none" a tutti gli album
 

Discussioni simili