Ciao a tutti, sto cercando di configurare (su dispositivi mobili) il pannello hamburger in modo che si apra scorrendo dal lato destro dello schermo, esattamente come è configurato il pannello del profilo. Vedo che esiste una regola left: 0 specifica per il pannello hamburger. Ho modificato il CSS ma non sono riuscito a replicare il comportamento di scorrimento verso sinistra del pannello del profilo. Non sembra esserci molto CSS specifico per il pannello hamburger, quindi non sono sicuro di cosa mi stia sfuggendo.
Apprezzerei qualsiasi consiglio o informazione su cosa potrei aver perso! Grazie a tutti.
Non c’è molto CSS coinvolto in questo caso. L’animazione è gestita con CSS, ma i valori per l’offset sono impostati in JavaScript per gestire il caso in cui l’utente scorra o sposti la vista a destra o a sinistra per chiudere i menu.
Gran parte di questa logica si trova qui - si tratta di un solo metodo; ce ne sono altri coinvolti nello stesso file:
C’è anche una logica che gestisce il caso in cui l’utente faccia clic sullo sfondo scurito per chiudere i menu.
Per il menu utente:
Per il menu hamburger:
Modificare questi elementi per far sì che il menu hamburger si apra e si chiuda a destra richiederà due passaggi.
Modifica il componente site-header utilizzando ModifyClass in modo che apra tutti i menu dal lato destro. Attualmente controlla una classe sul menu, quindi possiamo semplicemente sovrascriverla come segue:
api.modifyClass("component:site-header", {
pluginId: "right-side-mobile-hamburger",
_leftMenuClass() {
// Non vogliamo menu a sinistra, quindi restituiamo false
return false;
}
});
Quando si chiude il menu, vogliamo anche che si chiuda verso il lato destro. Per l’evento di scorrimento/spostamento, questo è già gestito dallo snippet sopra. Ora dobbiamo correggere il caso in cui l’utente fa clic sullo sfondo scurito. Discourse decide questo in base alla presenza o meno di una lingua RTL. Per modificare questo comportamento, abbiamo bisogno di un metodo diverso dell’API dei plugin, dato che il pannello hamburger è un widget.