Visualizzazione dei risultati da 1 a 3 su 3

Hybrid View

  1. #1
    Ciao Ciro,
    grazie per la risposta.
    Per una strana coincidenza, poco dopo aver scritto il thread, sono riuscito a risolvere il problema.

    Adesso vorrei fare in modo, con javascript, che si evidenziasse la voce del menu relativa alla pagina che si sta visualizzando. Gia' ho nei CSS una classe .selected.

    In attesa di un aiutino, posto il codice html con la funzione javascript con cui ho finalmente ottenuto due diversi menu di navigazione in italiano e in inglese, visto che io ci stavo perdendo la testa e magari può risultare utile a qualcun altro...

    Ho sostituito questo:
    codice:
    {{widget('extendednavigation', 'navigation', {})|raw}}
    che è la stringa che fornisce il widget di navigazione di base,
    con:

    codice:
    <div id="page-zones__template-widgets__extendednavigation-navigation" class="widget extendednavigation" data-widget-type="extendednavigation" data-uniqueid="page-zones__template-widgets__extendednavigation-navigation">
      <div class="extendednavigation"  align="center">
        <ul id="menunav" class="js-menu-list 13-items">
           <li id="menu-item_1" class="home  page"><a href="/"><span class="text">pagina iniziale</span></a></li>
           <li id="menu-item_2" class="page  folder" aria-haspopup="true"><a href="/galleria"><span class="text">galleria</span></a>
             <ul class="js-menu-list 2-items page">
               <li id="menu-item_3" class="page"><a href="/acquerello"><span class="text">acquerello</span></a></li>
               <li id="menu-item_4" class="page"><a href="/incisione"><span class="text">incisione</span></a></li>
              </ul>
           </ul>
             <a onclick="showNav()" href="#" class="pull  js-pull"></a>
    </div>
    </div>
    
    <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>
    Al codice html, copiato pari pari dal widget.extendednavigation, ho aggiunto le parti che ho evidenziato in grassetto:

    - un id=menunav all'elemento ul del menu,
    - la stringa onclick="showNav()" nell'elemento a.pull per richiamare la funzione e, appunto,
    - la funzione trovata in rete, con le variabili, che per ignoranza non ho ben capito, ma che credo consentano di ampliare l'array di classi e aggiungere la classe .open.

    Questi cambiamenti li ho apportati in tutti i file.twig del template contenenti l'html completo di singole pagine o gruppi di pagine (es. home.twig e default.twig) del sito. Ovviamente inserendo, per l'inglese, ulteriori file.twig con gli "href" alle pagine in inglese e gli "span" tradotti.

    Ora attendo qualche anima pia che mi aiuti ad evidenziare le voci delle pagine attive nel menu.
    Grazie mille e buona serata.
    Ultima modifica di PavlovTheDog; 20-04-2018 a 00:12

Tag per questa discussione

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.