Das Testen auf Benutzeragenten ist komplex, chaotisch und schlägt immer fehl. Ich habe auch nicht festgestellt, dass das Medienmatch für "Handheld" für mich funktioniert. Die einfachste Lösung bestand darin, festzustellen, ob die Maus verfügbar war. Und das kann so gemacht werden:
var result = window.matchMedia("(any-pointer:coarse)").matches;
Hier erfahren Sie, ob Sie Hover-Elemente anzeigen müssen oder nicht und alles andere, für das ein physischer Zeiger erforderlich ist. Die Dimensionierung kann dann für weitere Medienabfragen basierend auf der Breite vorgenommen werden.
Die folgende kleine Bibliothek ist eine Version der obigen Abfrage mit Gürtelklammern, die die meisten Szenarien "Sind Sie ein Tablet oder ein Telefon ohne Maus?" Abdecken sollte.
https://patrickhlauke.github.io/touch/touchscreen-detection/
Medienspiele werden seit 2015 unterstützt und Sie können die Kompatibilität hier überprüfen:
https://caniuse.com/#search=matchMedia
Kurz gesagt, Sie sollten Variablen beibehalten, die sich darauf beziehen, ob der Bildschirm ein Touchscreen ist und welche Größe der Bildschirm hat. Theoretisch könnte ich einen winzigen Bildschirm auf einem mausgesteuerten Desktop haben.