Signatur
Beschreibung
Die Eigenschaft MouseEvent.altKey ist true, wenn die Alt-Taste (unter macOS die Option-Taste ⌥) gedrückt war, während das Mausereignis ausgelöst wurde, sonst false. Sie ist schreibgeschützt und steht bei allen Ereignissen zur Verfügung, die von MouseEvent erben, also auch bei PointerEvent, WheelEvent und DragEvent.
Typische Einsatzfälle sind Modifikator-Klicks: etwa ein alternatives Verhalten beim Klicken (Element duplizieren statt verschieben, Auswahl umkehren, Detailansicht öffnen) oder beim Mausrad (feineres Zoomen). Zusammen mit ctrlKey, shiftKey und metaKey lassen sich Tastenkombinationen für die Maus abbilden.
Der Wert beschreibt den Zustand zum Zeitpunkt des Ereignisses. Wer den Zustand beliebiger Modifikatoren (z. B. AltGraph) prüfen möchte, kann alternativ event.getModifierState("Alt") verwenden.
Rückgabewert
true, wenn die Alt-/Option-Taste beim Ereignis gedrückt war, andernfalls false.Beispiele
Alt-Klick erkennen
const button = document.querySelector('#aktion');
button.addEventListener('click', (event) => {
if (event.altKey) {
console.log('Alt-Klick: erweiterte Aktion');
} else {
console.log('Normaler Klick');
}
});
Element per Alt-Drag duplizieren statt verschieben
const liste = document.querySelector('#liste');
liste.addEventListener('pointerdown', (event) => {
const eintrag = event.target.closest('li');
if (!eintrag) return;
// Mit Alt: Kopie erzeugen, ohne Alt: Original bewegen
const ziel = event.altKey ? eintrag.cloneNode(true) : eintrag;
if (event.altKey) liste.append(ziel);
ziel.classList.add('wird-gezogen');
console.log(event.altKey ? 'Kopie erstellt' : 'Original wird verschoben');
});
Feinzoom mit Alt + Mausrad
let zoom = 1;
const bild = document.querySelector('#bild');
bild.addEventListener('wheel', (event) => {
event.preventDefault();
const schritt = event.altKey ? 0.01 : 0.1; // Alt = feine Schritte
zoom = Math.max(0.1, zoom - Math.sign(event.deltaY) * schritt);
bild.style.transform = `scale(${zoom})`;
console.log(`Zoom: ${zoom.toFixed(2)}`);
}, { passive: false });
Synthetisches Ereignis mit altKey erzeugen
const ereignis = new MouseEvent('click', { altKey: true, bubbles: true });
console.log(ereignis.altKey);
// Nachträgliches Setzen hat keine Wirkung (schreibgeschützt)
ereignis.altKey = false;
console.log(ereignis.altKey);
// Wichtig · Fallstricke
- Betriebssystem-Belegung: Unter Windows öffnet ein einzelner Druck auf Alt oft die Menüleiste, unter Linux ziehen viele Fenstermanager Fenster mit Alt+Drag. Solche Kombinationen erreichen die Seite eventuell gar nicht.
- macOS: Die Option-Taste setzt
altKey. Für die übliche Befehlstaste ⌘ istmetaKeyzuständig. Option+Klick auf Links löst in Safari standardmäßig einen Download aus – bei BedarfpreventDefault()aufrufen. - AltGr: Auf Windows wird AltGr häufig als Strg+Alt gemeldet (
ctrlKeyundaltKeysind dann beidetrue). Für eine genaue UnterscheidunggetModifierState('AltGraph')nutzen. - Die Eigenschaft ist schreibgeschützt. Bei synthetischen Ereignissen legt man den Wert über das Init-Objekt des Konstruktors fest (
new MouseEvent(type, { altKey: true })). - Barrierefreiheit: Funktionen, die nur per Alt-Klick erreichbar sind, sollten zusätzlich über Tastatur oder Menü zugänglich sein.
- Die Unterstützung ist in allen modernen Browsern seit Langem gegeben.