• Home
  • Forum
  • Fare Web
  • Javascript

[Javascript] Voce del menu evidenziata in base alla pagina attiva

  • Creatore Discussione Creatore Discussione PavlovTheDog
  • Data di inizio Data di inizio 23 Apr 2018
Prec.
  • 1
  • 2
  • 3
Succ.
Primo Prec. 2 di 3 Succ. Ultimo
P

PavlovTheDog

Nuovo Utente
14 Apr 2018
24
0
1
  • 23 Apr 2018
  • #21
macus_adi ha scritto:
Che framework utilizzi?????
Al effettua il controllo sulla GET!
Clicca per allargare...
LESS Framework v7
 
M

marlev

Utente Attivo
19 Apr 2018
80
1
6
marlev.it
  • 23 Apr 2018
  • #22
ti ho chiesto diverse volte se ha provato la mia... No mi hai risposto. In ogni caso ho modificato il tuo codice del post precedente integrando la mia funzione, prova e fammi sapere.
Codice:
<!doctype html>
<!--[if lt IE 7]>
    <html class="no-js ie6 oldie" lang="en">
<![endif]-->
<!--[if IE 7]>
    <html class="no-js ie7 oldie" lang="en">
<![endif]-->
<!--[if IE 8]>
    <html class="no-js ie8 oldie" lang="en">
<![endif]-->
<!--[if gt IE 8]><!-->
    <html class="js" lang="{{ page.seoLang }}">
<!--<![endif]-->
<head>
    <meta charset="utf-8" />
    <title>{{ page.title }}</title>
    <meta name="keywords" content="{{ page.keywords }}" />
    <meta name="description" content="{{ page.description }}" />
    <meta http-equiv="content-language" content="{{ page.seoLang }}" />

    {% if site.favicon %}
        <link rel="icon" href="{{ site.favicon['favicon'] }}" type="image/x-icon" />
        <link rel="SHORTCUT ICON" href="{{ site.favicon['thumbnail'] }}?v={{ "now"|date("U") }}" type="image/x-icon" />
    {% endif %}
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <meta name="viewport" content="width=device-width,initial-scale=1">

    {% include basekit.headScript %}

</head>

<body class="{{ page.backgroundClass }}">

    {% block content %}
    {% endblock %}
    
    {% include basekit.bodyScript %}
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script>

            jQuery(document).ready(function () {
                function current_page() {
                    var pathname = window.location.pathname;
                     var li_id;
                    switch (pathname) {
                        case  "" :
                        case "/":
                            li_id = "#menu-item_1";
                            break;
                        case  "/galleria":
                        case "/galleria/":
                            li_id = "#menu-item_2";
                            break;
                        case  "/acquerello":
                        case "/acquerello/":
                            li_id = "#menu-item_3";
                            break;
                        case  "/incisione":
                        case "/incisione/":
                            li_id = "#menu-item_4";
                            break;
                        default :
                            li_id = "not_a_menu";
                    }

                    if (jQuery(li_id).length) {
                        jQuery(li_id).addClass("selected");
                    }

                }
                current_page();
            });
        </script>
        
        
<script type="text/javascript">
    ! function () {
        function supportsSVG() {
            return !!document.createElementNS && !! document.createElementNS('http://www.w3.org/2000/svg', 'svg').createSVGRect
        }
        if (supportsSVG()) document.documentElement.className += ' svg'
    };
</script>

</body>
</html>
 
P

PavlovTheDog

Nuovo Utente
14 Apr 2018
24
0
1
  • 23 Apr 2018
  • #23
marlev ha scritto:
ti ho chiesto diverse volte se ha provato la mia... No mi hai risposto. In ogni caso ho modificato il tuo codice del post precedente integrando la mia funzione, prova e fammi sapere.
Codice:
<!doctype html>
<!--[if lt IE 7]>
    <html class="no-js ie6 oldie" lang="en">
<![endif]-->
<!--[if IE 7]>
    <html class="no-js ie7 oldie" lang="en">
<![endif]-->
<!--[if IE 8]>
    <html class="no-js ie8 oldie" lang="en">
<![endif]-->
<!--[if gt IE 8]><!-->
    <html class="js" lang="{{ page.seoLang }}">
<!--<![endif]-->
<head>
    <meta charset="utf-8" />
    <title>{{ page.title }}</title>
    <meta name="keywords" content="{{ page.keywords }}" />
    <meta name="description" content="{{ page.description }}" />
    <meta http-equiv="content-language" content="{{ page.seoLang }}" />

    {% if site.favicon %}
        <link rel="icon" href="{{ site.favicon['favicon'] }}" type="image/x-icon" />
        <link rel="SHORTCUT ICON" href="{{ site.favicon['thumbnail'] }}?v={{ "now"|date("U") }}" type="image/x-icon" />
    {% endif %}
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <meta name="viewport" content="width=device-width,initial-scale=1">

    {% include basekit.headScript %}

</head>

<body class="{{ page.backgroundClass }}">

    {% block content %}
    {% endblock %}
  
    {% include basekit.bodyScript %}
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script>

            jQuery(document).ready(function () {
                function current_page() {
                    var pathname = window.location.pathname;
                     var li_id;
                    switch (pathname) {
                        case  "" :
                        case "/":
                            li_id = "#menu-item_1";
                            break;
                        case  "/galleria":
                        case "/galleria/":
                            li_id = "#menu-item_2";
                            break;
                        case  "/acquerello":
                        case "/acquerello/":
                            li_id = "#menu-item_3";
                            break;
                        case  "/incisione":
                        case "/incisione/":
                            li_id = "#menu-item_4";
                            break;
                        default :
                            li_id = "not_a_menu";
                    }

                    if (jQuery(li_id).length) {
                        jQuery(li_id).addClass("selected");
                    }

                }
                current_page();
            });
        </script>
      
      
<script type="text/javascript">
    ! function () {
        function supportsSVG() {
            return !!document.createElementNS && !! document.createElementNS('http://www.w3.org/2000/svg', 'svg').createSVGRect
        }
        if (supportsSVG()) document.documentElement.className += ' svg'
    };
</script>

</body>
</html>
Clicca per allargare...

Scusa, avevo detto solo che ho provato le vostre soluzioni proposte, non ti ho risposto individualmente.
Comunque anche così non va.
 
Ultima modifica: 23 Apr 2018
P

PavlovTheDog

Nuovo Utente
14 Apr 2018
24
0
1
  • 23 Apr 2018
  • #24
Ho provato anche questa (trovata altrove):
Codice:
<script type="text/javascript">

    //attivazione del menu
    function setActiveMenu(mnuId){
      var ul=document.getElementById("menunav");
      var lis=ul.getElementsByTagName("LI");    
      for(var i=0; i<lis.length; i++){
         if(lis[i].id==mnuId)lis[i].className="selected";
         else lis[i].className="";
          }
          return true;
    }
</script>

Ma non va, o non l'ho adattata come si deve.
 
M

marlev

Utente Attivo
19 Apr 2018
80
1
6
marlev.it
  • 23 Apr 2018
  • #25
Il sito e' online? se si manda il link che vediamo dal vivo
 
P

PavlovTheDog

Nuovo Utente
14 Apr 2018
24
0
1
  • 23 Apr 2018
  • #26
marlev ha scritto:
Il sito e' online? se si manda il link che vediamo dal vivo
Clicca per allargare...
Purtroppo non ancora.
 
M

marlev

Utente Attivo
19 Apr 2018
80
1
6
marlev.it
  • 23 Apr 2018
  • #27
Allora prova cosi, apri inspector e vedi se si e' aggiunta la classe "selected""a <li> e apri anche la console e vedi eventuali errori JS.
E vedi anche che script lavora con path, quindi il nome del sito deve essere fatto cosi example.com/galleria e non localhost/example/galleria
Se e' come ultimo, nel mio script devi aggiungere il path mancante
 
P

PavlovTheDog

Nuovo Utente
14 Apr 2018
24
0
1
  • 23 Apr 2018
  • #28
marlev ha scritto:
Allora prova cosi, apri inspector e vedi se si e' aggiunta la classe "selected""a <li> e apri anche la console e vedi eventuali errori JS.
E vedi anche che script lavora con path, quindi il nome del sito deve essere fatto cosi example.com/galleria e non localhost/example/galleria
Se e' come ultimo, nel mio script devi aggiungere il path mancante
Clicca per allargare...
Qui si può dare un'occhiata alla preview https://55b558c7-site-preview.spazioweb.it/home.
Ho provato a modificare in vari modi i "case", come mi dicevi, ma niente.
 
M

marlev

Utente Attivo
19 Apr 2018
80
1
6
marlev.it
  • 23 Apr 2018
  • #29
Mi chiede il login
 
P

PavlovTheDog

Nuovo Utente
14 Apr 2018
24
0
1
  • 23 Apr 2018
  • #30
marlev ha scritto:
Mi chiede il login
Clicca per allargare...
Ah, giusto, non mi ero reso conto di poterlo vedere solo io, credevo fosse un link valido a prescindere dall'accesso effettuato.
 
P

PavlovTheDog

Nuovo Utente
14 Apr 2018
24
0
1
  • 23 Apr 2018
  • #31
comunque ho provato ad aggiungere sia nomesito.it, sia 55b558c7-site-preview.spazioweb.it ai "case", ma non va. La classe "selected" non viene aggiunta.
 
M

marlev

Utente Attivo
19 Apr 2018
80
1
6
marlev.it
  • 23 Apr 2018
  • #32
Se il link del sito e' questo https://55b558c7-site-preview.spazioweb.it/home e dopo la home finale nel link non ci sono altri cartelle, nomi file , allora fai una prova, nell'ultimo codice che ho inviato, aggiungi la /home, riporto una parte modificata, nota inella condizione case : ...

Codice:
                        case  "/home" :
                        case "home/":
                            li_id = "#menu-item_1";
                            break;
                        case  "/home/galleria":
                        case "/home/galleria/":
 
P

PavlovTheDog

Nuovo Utente
14 Apr 2018
24
0
1
  • 23 Apr 2018
  • #33
marlev ha scritto:
Se il link del sito e' questo https://55b558c7-site-preview.spazioweb.it/home e dopo la home finale nel link non ci sono altri cartelle, nomi file , allora fai una prova, nell'ultimo codice che ho inviato, aggiungi la /home, riporto una parte modificata, nota inella condizione case : ...

Codice:
                        case  "/home" :
                        case "home/":
                            li_id = "#menu-item_1";
                            break;
                        case  "/home/galleria":
                        case "/home/galleria/":
Clicca per allargare...
No, ogni pagina ha il suo nome, "home" è valido solo per la homepage. Non ci sono cartelle, sono tutte pagine a sè stanti. Ho l'impressione che la difficoltà sia proprio aggiungere "selected" nell'array delle classi. Un problema simile l'ho avuto per inserire la classe "open" per far aprire il menu cliccando sull'icona per tablet e smartphone. Cosa che ho risolto così:
Codice:
<script>
function showNav() {
    var element = document.getElementById("menunav");

    if (element.classList) {
        element.classList.toggle("open");
    } else {
        var classes = element.className.split(" ");
        var x = classes.indexOf("open");

        if (x >= 0)
            classes.splice(x, 1);
        else
            classes.push("open");
            element.className = classes.join(" ");
    }
}
</script>
Magari da questo si può ricavarne qualcosa utile?
 
M

marlev

Utente Attivo
19 Apr 2018
80
1
6
marlev.it
  • 23 Apr 2018
  • #34
Allora in questo caso nelle prime due case : devi mettere come di seguito, loro definisco la home
Codice:
case  "/home" :
case "/home/":
E nelle altre pagine, secondo la pagina, esempio.
Codice:
case  "/galleria" :
case "/galleria/":
Ora prova a fare questa modifica e vedi con inspector del browser se si aggiunge la classe a li oppure vedi la console la presenza di qualche errore js.
 
P

PavlovTheDog

Nuovo Utente
14 Apr 2018
24
0
1
  • 23 Apr 2018
  • #35
marlev ha scritto:
Allora in questo caso nelle prime due case : devi mettere come di seguito, loro definisco la home
Codice:
case  "/home" :
case "/home/":
E nelle altre pagine, secondo la pagina, esempio.
Codice:
case  "/galleria" :
case "/galleria/":
Ora prova a fare questa modifica e vedi con inspector del browser se si aggiunge la classe a li oppure vedi la console la presenza di qualche errore js.
Clicca per allargare...
Nulla di fatto. Ho provato anche a mettere lo script nella sezione head e non nel body, ma non cambia nulla. La console non sembra riportare errori.
 
M

marlev

Utente Attivo
19 Apr 2018
80
1
6
marlev.it
  • 23 Apr 2018
  • #36
Ma la classe aggiunge? Posta l'immagine simile a quella che posto io (la mia e' in russo, quindi non fare il caso alle lettere strane). Per lanciare questa console, in firefox premi contemporaneamente CTRL + SHIFT + I. Si apre il pannello, a sinistra vedrai il primo pulsante con il simbolo di mouse, lo clicchi e avvicina il mouse alla voce del menu.
Vedrai classi ed i dettagli.
Penso che magari in qualche modo non prende il CSS e voiglio vedere se classe selected si aggiunge e se si aggiunge devi solo sistemare CSS
 

Allegati

  • firefox_inspector.png
    89,4 KB · Visite: 415
M

marlev

Utente Attivo
19 Apr 2018
80
1
6
marlev.it
  • 23 Apr 2018
  • #37
Aggiungo, il secondo pulsante da sinistra e' console, la puoi vedere eventuali errori JS
 
P

PavlovTheDog

Nuovo Utente
14 Apr 2018
24
0
1
  • 23 Apr 2018
  • #38
marlev ha scritto:
Ma la classe aggiunge? Posta l'immagine simile a quella che posto io (la mia e' in russo, quindi non fare il caso alle lettere strane). Per lanciare questa console, in firefox premi contemporaneamente CTRL + SHIFT + I. Si apre il pannello, a sinistra vedrai il primo pulsante con il simbolo di mouse, lo clicchi e avvicina il mouse alla voce del menu.
Vedrai classi ed i dettagli.
Penso che magari in qualche modo non prende il CSS e voiglio vedere se classe selected si aggiunge e se si aggiunge devi solo sistemare CSS
Clicca per allargare...
No, non aggiunge la classe, ma il CSS è corretto, perché se aggiungo manualmente, tramite html, la classe "selected" a uno degli elementi "a", cambia effettivamente colore la voce corrispondente nel menu.
Errori non ce ne sono, ho solo una serie di GET...
 
M

marlev

Utente Attivo
19 Apr 2018
80
1
6
marlev.it
  • 23 Apr 2018
  • #39
Mha.. Quando metti online il sito, risuscita questa discussione.
Saluti
 
M

marlev

Utente Attivo
19 Apr 2018
80
1
6
marlev.it
  • 23 Apr 2018
  • #40
Aggiungo alla risposta precedente.
Oppure contattami attraverso il mio sito e se ci mettiamo d'accordo te lo sistemo io.
 
Prec.
  • 1
  • 2
  • 3
Succ.
Primo Prec. 2 di 3 Succ. Ultimo
Devi accedere o registrarti per poter rispondere.

Discussioni simili

[Javascript] Linkare ogni sigola voce dello stesso menu ad un div diverso della stessa pagina
  • Daniele450
  • 5 Ott 2016
  • Javascript
Risposte
3
Visite
2K
Javascript 11 Ott 2016
Daniele450
M
variabile javascript su link html
  • mizar1966
  • 30 Apr 2024
  • Javascript
Risposte
5
Visite
2K
Javascript 7 Mag 2024
mizar1966
M
I
Creare un banner temporaneo JavaScript
  • IlTizioScriptato
  • 25 Apr 2023
  • Javascript
Risposte
0
Visite
2K
Javascript 25 Apr 2023
IlTizioScriptato
I
S
Impossibile scorrere un oggetto in JavaScript
  • steven myth
  • 23 Set 2022
  • Javascript
Risposte
0
Visite
2K
Javascript 23 Set 2022
steven myth
S
N
Passare array da php a javascript
  • Namaste!
  • 12 Lug 2022
  • PHP
Risposte
5
Visite
3K
PHP 13 Lug 2022
WmbertSea
L
Quiz javascript funzionante da migliorare
  • Lenigmista
  • 24 Feb 2022
  • Javascript
Risposte
0
Visite
3K
Javascript 24 Feb 2022
Lenigmista
L
P
  • Bloccata
errore 404 con javascript
  • psicona
  • 31 Gen 2022
  • Javascript
Risposte
2
Visite
1K
Javascript 31 Gen 2022
Max 1
D
  • Bloccata
aiuto funzioni javascript
  • dedu
  • 9 Gen 2022
  • Javascript
Risposte
1
Visite
1K
Javascript 9 Gen 2022
Max 1
M
Upload immagine con javascript problemi con FormData()
  • MBlackmore
  • 6 Ott 2021
  • Javascript
Risposte
1
Visite
1K
Javascript 6 Ott 2021
MBlackmore
M
L
  • Bloccata
countdown multiplo javascript
  • lillo21
  • 3 Ago 2021
  • Javascript
Risposte
1
Visite
1K
Javascript 3 Ago 2021
Max 1
S
  • Bloccata
Problemi Javascript + Aruba
  • sak89
  • 6 Lug 2021
  • Javascript
Risposte
2
Visite
2K
Javascript 6 Lug 2021
Max 1
M
Inviare un file su un server remoto con JavaScript
  • Mirawara
  • 25 Mag 2021
  • Javascript
Risposte
0
Visite
1K
Javascript 25 Mag 2021
Mirawara
M
T
a href="javascript:;"
  • tore90
  • 17 Mag 2021
  • Javascript
Risposte
1
Visite
2K
Javascript 1 Nov 2021
sonusood2022
S
F
Creare elementi html con javascript
  • Fra_23
  • 7 Mag 2021
  • Javascript
Risposte
3
Visite
3K
Javascript 10 Ago 2021
McLeanerGla
M
A
pulsante di update campo mysql con javascript
  • AndreaCerre
  • 31 Mar 2021
  • Javascript
Risposte
2
Visite
1K
Javascript 31 Mar 2021
AndreaCerre
A
8
Javascript - PDF Form
  • 81bankai
  • 11 Mar 2021
  • Javascript
Risposte
0
Visite
2K
Javascript 11 Mar 2021
81bankai
8
B
javascript per problemi con pdf e Safari
  • bibliofila
  • 7 Gen 2021
  • Javascript
Risposte
0
Visite
3K
Javascript 7 Gen 2021
bibliofila
B
N
informazione javascript
  • Nedved95
  • 2 Dic 2020
  • Programmazione
Risposte
0
Visite
2K
Programmazione 2 Dic 2020
Nedved95
N
I
Eecuzione di javascript in ciclo foreach php.
  • inftecnica
  • 25 Ott 2020
  • PHP
Risposte
7
Visite
2K
PHP 28 Ott 2020
inftecnica
I
P
javascript:document.forms
  • PaoloG
  • 29 Ago 2020
  • Javascript
Risposte
7
Visite
2K
Javascript 3 Set 2020
Max 1
Condividi:
Facebook X (Twitter) LinkedIn WhatsApp e-mail Condividi Link
  • Home
  • Forum
  • Fare Web
  • Javascript
  • Italiano
  • Termini e condizioni d'uso del sito
  • Policy Privacy
  • Aiuto
  • Home
Community platform by XenForo® © 2010-2024 XenForo Ltd. | Traduzione a cura di XenForo Italia
Menu
Accedi

Registrati

  • Home
  • Forum
    • Nuovi Messaggi
    • Cerca...
  • Novità
    • Featured content
    • Nuovi Messaggi
    • Ultime Attività
X

Privacy & Transparency

We use cookies and similar technologies for the following purposes:

  • Personalized ads and content
  • Content measurement and audience insights

Do you accept cookies and these technologies?

X

Privacy & Transparency

We use cookies and similar technologies for the following purposes:

  • Personalized ads and content
  • Content measurement and audience insights

Do you accept cookies and these technologies?