Kontextmenü 
           
          17. Dezember 2024, 18:11 Uhr 
          Das Kontextmenü ist ein modaler Dialog, der sich am geklickten Button ausrichtet. Der Hintergrund wird nicht gefiltert. Jeder Klick auf einen Link oder Button schliesst das Kontextmenü. Bei Smartphones (kleiner als 480 Pixel Breite oder Höhe) wird das Kontextmenü aus Platzgründen wie ein Standard-Dialog behandelt.
         
        
          Voraussetzung 
          Ich gehe davon aus, dass du das HTML und das Javascript gemäss der Dialoge-Anleitung  eingrichtet hast. Insbesondere die dialog.js übernimmt hier einen massgeblichen Anteil.
          Dialoge Basiseinrichtung 
         
        
          Dialog stylen 
          Das Kontextmenü wird über die CSS-Klasse context  behandelt.
          
            CSS 
            dialog.context[data-dialog-arrow] {
  margin: 0;
  overflow: visible;
  &::backdrop {
    opacity: 0;
  }
  &::after {
    box-shadow: color-mix(in oklab, var(--text-color), transparent 50%) -0.4rem 0.4rem 0.4rem;
    border: 1rem solid transparent;
    border-color: transparent transparent var(--default2-color) var(--default2-color);
    transform-origin: 0 0;
    transform: rotate(135deg);
    left: 3.2rem;
    content: '';
    position: absolute;
    width: 0;
    height: 0;
    margin-top: 0.1rem;
    box-sizing: border-box;
    display: block;
  }
  &[data-dialog-arrow='bottom-left']::after {
    border-color: transparent transparent var(--bg-color) var(--bg-color);
    bottom: -2.6rem;
    transform-origin: -2.4rem 3.2rem;
    transform: rotate(315deg);
  }
  &[data-dialog-arrow='top-right']::after {
    border-color: transparent transparent var(--default2-color) var(--default2-color);
    left: auto;
    right: -1.6rem;
  }
  &[data-dialog-arrow='bottom-right']::after {
    border-color: transparent transparent var(--bg-color) var(--bg-color);
    left: auto;
    right: -1.6rem;
    bottom: -2.6rem;
    transform-origin: -2.4rem 3.2rem;
    transform: rotate(315deg);
  }
}
           
          Alle weiteren Styles können vom Standard-Dialog geerbt werden.
         
        
          Dialoginhalt erstellen 
          Das HTML für das Kontextmenü unterscheidet sich nur durch die class="context" vom Standard-Dialog.
          
            dialogContextSample.html 
            <dialog class="context">
  <header class="dialogHeader">
    <p>Beispiel;</p>
    <button class="icon icon-close" data-dialog-close="1" title="Dialog schliesssen"></button>
  </header>
  <div class="dialogContent">
    <p>Das ist ein Dialog.</p>
  </div>
</dialog>
           
         
        
          Dialog testen 
          Damit ist bereits alles Notwendige getan. Alles Weitere übernimmt die dialog.js. Wir können den Kontext-Dialog also gleich testen.
          Kontext-Dialog anzeigen 
         
        
          Nicht-modale Variante 
          Eine nicht-modale Variante des Kontextmenüs ist das Flyout. Möglicherweise scheint dir dies geeigneter.
          Flyout einrichten 
         
        
          Dran bleiben 
          Du hast es geschafft. Abonniere meine Benachrichtigungen, um weitere News und Anleitungen von mir zu erhalten.
          Push aktivieren  Feed einbinden