Menu e sottomenu client side senza reload della pagina

giovedì 27 settembre 2007 - 17.31

sciontphono Profilo | Newbie

Menu e sottomenu client side senza reload della pagina

Salve,

sto cercando di sviluppare un menu che abbia le funzionalità descritte nell'immagine che segue;
poichè deve essere client-side e al click su ognuna delle voci non ci deve essere il reload della pagina mi è stato suggerito di svilupparlo in javascript;
poichè non sono un espertissimo programmatore e non saprei neanche da dove cominciare, volevo sapere se c'era qualcosa di simile in rete, una base dalla quale partire e poi da modificare.
Si trovano tantissimi esempi di menu ma non come quello mio.


500x243 20Kb


Ad ogni modo ecco un esempio (scaricato dalla rete) che utilizza del codice javascript

http://www.onedotzero.net/xmenu/menu.html

La mia necessità sarebbe che all'evento onCLICK su una delle voci PRINCIPALI (quindi Menu 1 o MENU 2 ecc) vengano visualizzate i sotto-link (quindi se ho cliccato Menu 1 visualizzerò voce 1 di menu 1, voce 2 di menu 1 ecc) relativi alla voce cliccata e contemporaneamente nascoste le altre voci principali.

Per tornare all situazione di default vorrei mettere una freccia DIETRO che mi riporti alla visualizzazione di tutte le voci principali.

Se qualcuno ha visto sulla rete qualcosa di simile o lo ha usato o abbia un suggerimento utile per favore mi faccia sapere!

GRAZIE

alx_81 Profilo | Guru

>Menu e sottomenu client side senza reload della pagina
>
>Salve,
Ciao!

>Se qualcuno ha visto sulla rete qualcosa di simile o lo ha usato
>o abbia un suggerimento utile per favore mi faccia sapere!
che ne dici di questo?
http://javascript.html.it/script/vedi/4236/menu-dinamico-verticale/

>GRAZIE
di nulla, provalo e facci sapere

Alx81 =)

http://blogs.dotnethell.it/suxstellino

freeteo Profilo | Guru

ciao a tutti,
per fare cose accattivanti sicuramente javascript è la cosa migliore...ma perche' non provare anceh qualcosa di ancora piu' "web 2.0" ?
Intendo i menu con css, io li adoro
c'e' da dire che per interenet explorer 6 alcuni non vanno, ma questo è uno scandalo di ie 6, che fortunatamente hanno risolto con ie7...quindi la cosa è da valutare ma quando si parla di menu' io non posso che consigliare sempre di valutare anche questa strada...

vi lascio uno dei siti piu' significativi per questo, in particolare gia' "puntato" su un tipo di quelli che vuoi fare tu:
http://www.cssplay.co.uk/menus/dd_valid.html

ciao.

Matteo Raumer
[MCAD .net]
http://blogs.dotnethell.it/freeteo

sciontphono Profilo | Newbie

Salve Alex,

grazie mille per la risposta...purtroppo devo dirti che un menu come mi hai suggerito tu ce l'ho - c'è anche il link (http://www.onedotzero.net/xmenu/menu.html)

A me serve che faccia esattamente ciò che descrivo...insomma se clicco su una voce PRINCIPALE mi deve visualizzare le sottocategorie relative e al tempo stesso far scomparire tutte le altre categorie.

Es.

MENU1 <-- click
MENU2
----------------------------

MENU1
sottomenu1
sottomenu2

back <-- click
-----------------------------

MENU1
MENU2
-----------------------------

mi sono spiegato? insomma la cosa è banale ma non so come modificare lo script per far in modo che funzioni in questo modo, ecco il codice:

---------------------------------


<html> <head> <title>Menu con javaScript</title> <style> a:visited{color:black;font-family:verdana} a:link{color:black;font-family:verdana} a:hover{color:blue;font-family:verdana} p {color:black;font-family:verdana;font-size:12pt} h1 {color:black;font-family:verdana;font-size:13pt} </style> <script> function startmenu() { document.getElementById('menu1').style.display = "none"; document.getElementById('menu1').style.display = "none"; document.getElementById('menu2').style.display = "none"; document.getElementById('menu3').style.display = "none"; document.getElementById('menu4').style.display = "none"; } function menufunc(menuId) { if(document.getElementById(menuId).style.display == "none") { startmenu(); document.getElementById(menuId).style.display = "block"; } else { startmenu(); } } </script> </head> <body onLoad="javascript:startmenu()"> <a href="javaScript:menufunc('menu1')">Menu 1</a> <div id="menu1"> - <a href='#'>voce 1 di menu 1</a><br> - <a href='#'>voce 2 di menu 1</a><br> - <a href='#'>voce 3 di menu 1</a><br> </div> <br> <a href="javaScript:menufunc('menu2')">Menu 2</a> <div id="menu2"> - <a href='#'>voce 1 di menu 2</a><br> - <a href='#'>voce 2 di menu 2</a><br> - <a href='#'>voce 3 di menu 2</a><br> </div> <br> <a href="javaScript:menufunc('menu3')">Menu 3</a> <div id="menu3"> - <a href='#'>voce 1 di menu 3</a><br> - <a href='#'>voce 2 di menu 3</a><br> - <a href='#'>voce 3 di menu 3</a><br> </div> <br> <a href="javaScript:menufunc('menu4')">Menu 4</a> <div id="menu4"> - <a href='#'>voce 1 di menu 4 </a><br> - <a href='#'>voce 2 di menu 4 </a><br> - <a href='#'>voce 3 di menu 4 </a><br> </div> </body> </html>

alx_81 Profilo | Guru

>Salve Alex,
Ciao
>
>grazie mille per la risposta...purtroppo devo dirti che un menu
>come mi hai suggerito tu ce l'ho - c'è anche il link (http://www.onedotzero.net/xmenu/menu.html)
>A me serve che faccia esattamente ciò che descrivo...insomma
>se clicco su una voce PRINCIPALE mi deve visualizzare le sottocategorie
>relative e al tempo stesso far scomparire tutte le altre categorie.
Scusami, non avevo capito bene la problematica..
io modificherei il codice così:
Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

Detto questo, devo assolutamente dirti che sono d'accordo con freeteo. La sua soluzione di utilizzare i CSS è sia più affascinante, sia più corretta dal punto di vista dei nuovi standard, quindi se hai tempo, segui quello che ti può consigliare.
Grazie freeteo.
Alx81 =)

http://blogs.dotnethell.it/suxstellino

sciontphono Profilo | Newbie

Ciao Alex...

bhè grazie mille...è esattamente l'effetto che desideravo
Per quanto riguarda i suggerimenti di provare a farlo in css:
mi è stato espressamente richiesto il templete del sito (dagli sviluppatori che poi realizeranno la parte dinamica) in javascript

Pensa che io per scrupolo i menu a tendina che ci sono nel sito - ne sono 2 - li faccio funzionare coi css e realizzando l'intero layout TABLELESS e testando il sito per IE 6,7 - FIREFOX, MOZILLA (pc)
e per SAFARI e MOZILLA (mac)

Se loro mi chiedono di farlo così io glielo do così...poi caxxi loro :D

grazie e alla prossima

alx_81 Profilo | Guru

>Ciao Alex...
Ciao!
>
>bhè grazie mille...è esattamente l'effetto che desideravo
>Per quanto riguarda i suggerimenti di provare a farlo in css:
>mi è stato espressamente richiesto il templete del sito (dagli
>sviluppatori che poi realizeranno la parte dinamica) in javascript
>Pensa che io per scrupolo i menu a tendina che ci sono nel sito
>- ne sono 2 - li faccio funzionare coi css e realizzando l'intero
>layout TABLELESS e testando il sito per IE 6,7 - FIREFOX, MOZILLA
>(pc)
>e per SAFARI e MOZILLA (mac)
>Se loro mi chiedono di farlo così io glielo do così...poi caxxi loro :D
eheheh ottimo
>
>grazie e alla prossima
di nulla!
Magari accetta i nostri post così chiudiamo il thread
grazie, ciao!

Alx81 =)

http://blogs.dotnethell.it/suxstellino

sciontphono Profilo | Newbie

Ciao ragazzi!

scusate ma non sapevo bisognasse accettare le risposte!

detto fatto

fatemi sapere se è ok

di nuovo grazie e alla prossima!

Sciontphono

alx_81 Profilo | Guru

>Ciao ragazzi!
>scusate ma non sapevo bisognasse accettare le risposte!
non è strettamente necessario, ma è buona norma, così chiudiamo il thread e se qualcuno ripassa da questa discussione, vede che effettivamente la problematica è stata chiusa e che il post accettato ha risposto al quesito (o si è avvicinato )
>
>fatemi sapere se è ok
non ho capito come è stato accettato il post e perchè hai accettato due volte il mio.. forse sarebbe stato più corretto accettare quello di freeteo, che ha dato un consiglio decisamente da seguire..
Alx81 =)

http://blogs.dotnethell.it/suxstellino
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5