Accedi per seguire   
Seguaci 0
Prassede

[js] Menu Sempre Aperto

35 messaggi in questa discussione

Ciao a tutti,

sono riuscita a trovare dopo tante peripezie, il codice per un menu molto carino. Questo. Il punto è che quando passo da una pagina all'altra il suddetto menu si richiude. Come posso ovviare a questo inconveniente?

La scelta è ricaduta su questo codice perchè mi serviva un menu con sottocartelle annidate facili da incrementare, che non utilizzasse elenchi puntati (ul, li etcc) o img fisse da css, poichè ogni titolo principale del menu è caratterizzato da una immagine diversa, così come le sottocartelle.

Ringrazio sin da ora per i suggerimenti :)

Prassede

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Ciao Prassede,nella tua pagina web, il menù è in un frame o viene caricato ogni volta che si cambia pagina?

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Viene caricato ogni volta che cambio pagina. Vorrei evitare i frame, mi stanno antipatici :)

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Ciao a tutti,

sono riuscita a trovare dopo tante peripezie, il codice per un menu molto carino. Questo. Il punto è che quando passo da una pagina all'altra il suddetto menu si richiude. Come posso ovviare a questo inconveniente?

La scelta è ricaduta su questo codice perchè mi serviva un menu con sottocartelle annidate facili da incrementare, che non utilizzasse elenchi puntati (ul, li etcc) o img fisse da css, poichè ogni titolo principale del menu è caratterizzato da una immagine diversa, così come le sottocartelle.

Ringrazio sin da ora per i suggerimenti :)

Prassede

Ciao Prassede :P

Non ho ancora avuto il tempo di guardare per bene il menu.

Da quello che ho capito, tu vorresti che ogni volta si cambi pagina, il menu di quella pagina abbia le stesse ipostazioni di quella precedente.

Siccome l'http ha il difetto di non "ricordare" le comunicazione (per un server web ogni pagina che si visualizza è una comunicazione nuova...), per fare quello che vuoi tu puoi agire in 2 modi:

1) Utilizzi i frame e metti il menu in un frame separato. Così non viene generato un nuovo menu quando carichi una nuova pagina. Questa soluzione è la più semplice ma, sinceramente, a me non piace molto... Di solito evito di utilizzare i frame...

2) Utilizzi un cookie che memorizzi ogni volta lo stato dei vari menu. In questo caso devi modificare il codice del menu in modo che "legga" lo stato dal cookie. Così facendo ogni pagina nuova disegnerà il menu aperto o chiuso in base alle direttive del cookie.

:P

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti
Viene caricato ogni volta che cambio pagina. Vorrei evitare i frame, mi stanno antipatici ;)
;);):) ...cosa ti hanno fatto? ti hanno picchiato quando eri piccola? :):P:P:wub::P

Per quanto riguarda il problema, mi limito a quotare Prozac... :(

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Ci avevo pensato, anche se nn saprei da dove partire per inserire il cookie, ma poi.. se qualcuno ha il blocco dei cookie? :)

Sì mi hanno spinta giù dal seggiolone :P

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti
Ci avevo pensato, anche se nn saprei da dove partire per inserire il cookie, ma poi.. se qualcuno ha il blocco dei cookie? :)
Il blocco dei Cookie potrebbe creare qualche problema, secondo me la soluzione migliore (in questo caso per ragioni di facilità e velocità di realizzazione...) è il frame...

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Inviato (modificato)

Magari faccio una prova in merito ai cookie, quale codice devo inserire e dove?..

Cmq qualora potesse servire, al momento il sito è fruibile solo off-line e lo sarà ancora per un pò.

Potrei usare qualunque altro codice (javascript) l'importante è che soddisfi i requisiti di cui sopra, per cui se ne conoscete altri rispetto a quello menzionato, va benissimo...

Modificato da Prassede

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Se hai il codice del menù copiato un ogni pagina ( quindi non includi un file esterno dove è contenuto il menù) puoi per ogni pagina lasciare visibile solo la parte che ti interessa...ma dubito che sia così (anche perchè presumo che ci saresti arrivata da sola)...

...ps: anch'io odio i frame e stò cercando una soluzione per il menù... ;-)

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Magari faccio una prova in merito ai cookie, quale codice devo inserire e dove?..

Cmq qualora potesse servire, al momento il sito è fruibile solo off-line e lo sarà ancora per un pò.

Potrei usare qualunque altro codice (javascript) l'importante è che soddisfi i requisiti di cui sopra, per cui se ne conoscete altri rispetto a quello menzionato, va benissimo...

Altri modi ci sono ma non dipendono dallo script che utilizzi, perchè il problema rimane sempre il server... quello smemorato d'un server :ranting2:

Un metodo potrebbe essere quello di utilizzare tecnologia dinamica: ASP, PHP, JSP, XML, CCCP, Forza Italia, ecc...

Un altro modo è quello di "portarsi dietro le informazioni per ogni pagina". In pratica, invece che utilizzare i cookie, si utilizza l'header http. Oltre alla pagina vera e propria, si spediscono anche delle informazioni aggiuntive (header appunto) che ricordano come deve stare il menu.

Ed ora passiamo alla soluzione dei cookie :P

I cookie altro non sono se non delle coppie nome=valore assegnate ad una determinata pagina e un determinato client. Poi ogni browser se li gestisce come preferisce: file di testo, database, ecc...

Le due azioni più importanti sui cookie sono quelle di lettura e scrittura :P:wub::P

Scrittura di un cookie

function setCookie(NameOfCookie, value, expiredays)
{
var ExpireDate = new Date ();
ExpireDate.setTime(ExpireDate.getTime() + (expiredays * 24 * 3600 * 1000));

document.cookie = NameOfCookie + "=" + escape(value) + ((expiredays == null) ? "" : "; expires=" + ExpireDate.toGMTString());
}

In pratica noi impostiamo un cookie il cui nome è NomeOfCookie al valore value. E questo cookie vale expiredays giorni...

Lettura di un cookie

function getCookie(NameOfCookie){
  if (document.cookie.length > 0)
{
  begin = document.cookie.indexOf(NameOfCookie+"=");
  if (begin != -1)
  {
	 begin += NameOfCookie.length+1;
	 end = document.cookie.indexOf(";", begin);
	 if (end == -1) end = document.cookie.length;
	 return unescape(document.cookie.substring(begin, end));
  }
  }
  return null;
}

In pratica questo codice si porta dove inizia l'accoppiata NameOfCookie=value;

dopodichè recupera esclusivamente il conenuto di value e lo restituisce... ;)

:)

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

eh no uso un modello, altrimenti per modificare tutte le pagine ci metterei una vita :P

mannaggia sti frames :)

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Già che ci sono aggiungo anche come

Eliminare un cookie

function delCookie (NameOfCookie)
{
if (getCookie(NameOfCookie))
	document.cookie = NameOfCookie + "=" + "; expires=Thu, 01-Jan-70 00:00:01 GMT";
}

ri :)

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti
ASP, PHP, JSP, XML, CCCP, Forza Italia, ecc...
:)

:P:P:wub:

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Ma se copio ed incollo il codice va bene o devo apportargli delle modifiche? E poi.. esterno o interno? :P

Grazie per la spiegazione, il concetto è chiaro, ora devo cogliere la sua applicazione diretta :)

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Ma se copio ed incollo il codice va bene o devo apportargli delle modifiche? E poi.. esterno o interno? :P

Grazie per la spiegazione, il concetto è chiaro, ora devo cogliere la sua applicazione diretta :)

Scusa se rispondo solo adesso... non mi ero accortoooooooooooo :wub:

Quelle tre funzioni permettono di scrivere, leggere ed eliminare un cookie.

Quello che dovresti fare tu è di utilizzarle per ogni menu...

Ad esempio, se il tuo "navigatore" ha un menu di 5 sezioni (che si aprono e chiudono) dovresti salvare 5 cookie ed ognuno di essi contiene lo stato della sezione.

Devi, inoltre, modificare il codice del menu in modo che vada a leggere questi n valori... ed imposti lo stato di ogni sezione in base al contenuto di essi...

Io non ho ancora avuto tempo di gurdare com'è stato scritto quel menu... Comunque, metti qui ogni dubbio possibile :P

:P

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Inviato (modificato)

Non ci posso credereeee :P

In extremis ho provato a cercare in rete (ormai mi chiamano la segugia) ed ho trovato lo stesso menu ma con aggiunta di cookie. :)

oooh meno male..

Prozac, Jhonsilver, Spiug... :P

Modificato da Prassede

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Non ci posso credereeee :P

In extremis ho provato a cercare in rete (ormai mi chiamano la segugia) ed ho trovato lo stesso menu ma con aggiunta di cookie. :)

oooh meno male..

Prozac, Jhonsilver, Spiug... :P

Bene ;) Mi sono evitato di scriverlo io :P Scherzoooooooooooooooo

:wub:

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Hehehe.. sicuramente tu l'avresti scritto meglio, visto che sto cookie ogni tanto fa cilecca :)

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Prozac, Jhonsilver, Spiug... :)

:P

:P:P:wub:

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

hehe manie di protagonismo? :locked:

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti
;)

:P:wub::P

Tacchino%20Ermellinato_p.jpg

:dia: :dia: :dia: :dia:

Bando alle ciance... ;):( Prassede, e se mettessi "tutto" il menu espanso con la possibilità poi di "comprimerlo", per te sarebbe una soluzione praticabile? In questo modo eviteresti cookie, utilizzo di tecnologie lato server, ecc... ;-) :)

hehe manie di protagonismo? :locked:

No no, non credo proprio, Jhonsilver è un bravo ragazzo (quando dorme... :dia: ), semplicemente ci piace scherzare. ;-) :P

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Tacchino%20Ermellinato_p.jpg

:dia: :dia: :dia: :dia:

:angry:
hehe manie di protagonismo? :locked:
Chi?io?Solo perchè sono l'essere più bello, intelligente e romantico del pianeta?...nooooo :):P:P:wub::P;)

PS: Forse è ora di smetterla con il vino rosso a colazione...voi che dite? :(;);):)

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Lorenz, il punto è che il menu contiene veramente moltissime voci, per cui creerebbe uno scroll lunghissimo.

Ora rivedo il codice con i cookie, ma dubito di riuscire a migliorarlo perchè in javascript sono poco ferrata.

Sembrava funzionare alla perfezione, poi mi sono accorta che quando si passa da una pagina all'altra, anzicchè lasciare il menu aperto, lo riapre nuovamente, allora si nota questo effetto elastico poco gradevole :sick:

'nnaggia pensavo di aver svoltato :)

hehe Jhonsilver burlone :popò:

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti
hehe Jhonsilver burlone :popò:
:wub::P;) ... :P
Lorenz, il punto è che il menu contiene veramente moltissime voci, per cui creerebbe uno scroll lunghissimo.

Ora rivedo il codice con i cookie, ma dubito di riuscire a migliorarlo perchè in javascript sono poco ferrata.

Sembrava funzionare alla perfezione, poi mi sono accorta che quando si passa da una pagina all'altra, anzicchè lasciare il menu aperto, lo riapre nuovamente, allora si nota questo effetto elastico poco gradevole :sick:

'nnaggia pensavo di aver svoltato :P

Ogni volta che si scatena l'evento onload della pagina, viene chiamata una funzione che si chiama InitMenu se non sbaglio, nella versione con i Cookie penso che venga inizializzato con le informazioni presenti nel cookie...secondo me per avere l'effetto che vuoi ottenere tu è necessario usare i Frame... :)

Dove hai scaricato il menù che fa uso dei cookies?

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Eh se non trovo una soluzione migliore.. sti frame!

L'ho trovato qui

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Crea un account o accedi per lasciare un commento

Devi essere un utente registrato per partecipare

Crea un account

Iscriviti per un nuovo account nella nostra community. È facile!


Registra un nuovo account

Accedi

Sei già registrato? Accedi qui.


Accedi Ora
Accedi per seguire   
Seguaci 0