JavaScript -Medienabfragen: Beyond Window Gratize
Was f?llt mir ein, wenn Sie an Medienfragen denken? Wahrscheinlich regiert CSS wie diese:
K?rper { Hintergrundfarbe: Plum; } @media (min-Width: 768px) { K?rper { Hintergrundfarbe: Tomate; } }
CSS -Medienabfragen sind von grundlegender Bedeutung für reaktionsschnelles Design, angewendet Stile basierend auf der Gr??e der Ansichtsfenster, der Ger?tetyp, den Einstellungen (Farbschema, Bewegung) und mehr. JavaScript bietet jedoch auch Medienabfragefunktionen, die h?ufig für das Erstellen von Responsive -Plugins oder das dynamische Anpassen von Elementen basierend auf den Bildschirmbedingungen wertvoll sind.
Im Gegensatz zu CSS unterscheidet sich die Medienabfrage von JavaScript. Das Kernkonzept bleibt gleich: übereinstimmung mit Bedingungen und Anwendung von Aktionen.
Verwenden von matchMedia()
Die matchMedia()
-Methode bestimmt, ob eine Medienabfrage mit dem aktuellen Dokumentstatus übereinstimmt. Obwohl der Browser -Support im CSS -Objektmodell -Ansichtsmodul arbeitet, ist der Browser -Support hervorragend.
Die Nutzung spiegelt CSS wider: übergeben Sie eine Medienabfrage -Zeichenfolge an matchMedia()
und überprüfen Sie die .matches
.
// die Abfrage definieren const MediaQuery = window.matchmedia ('(min-width: 768px)');
matchMedia()
gibt ein MediaQueryList
-Objekt zurück. Die Eigenschaft .matches
(schreibgeschützter Boolean) gibt an, ob das Dokument mit der Abfrage übereinstimmt.
// Erstellen Sie eine Medienbedingung für Ansichtsfenster mindestens 768px breit const MediaQuery = window.matchmedia ('(min-width: 768px)'); // überprüfen Sie, ob die Medienabfragen übereinstimmen if (Mediaquery.Matches) { // eine Aktion ausl?sen Alert ('Medienabfrage übereinstimmt!'); }
Dies behandelt einzelne Schecks. Für die kontinuierliche überwachung brauchen wir Event -H?rer.
Auf ?nderungen h?ren
MediaQueryList
bietet addListener()
(und removeListener()
) zur Registrierung einer Rückruffunktion ( .onchange
-Ereignis) ausgel?st, wenn sich der Status der Medienabfrage ?ndert. Dies erm?glicht reaktionsschnelle Aktionen auf aktualisierte Bedingungen.
// Erstellen Sie eine Bedingung für Ansichtsfenster mindestens 768px breit const MediaQuery = window.matchmedia ('(min-width: 768px)'); Funktion Handletabletchange (e) { // überprüfen Sie, ob die Medienabfragen übereinstimmen if (e.matches) { // eine Aktion durchführen console.log ('Medienabfrage übereinstimmt!'); } anders { console.log ('Medienabfrage unerreicht!'); } } // Event -H?rer registrieren MediaQuery.AddListener (Handletabletchange); // Erstprüfung Handlebende (Mediaquery);
addListener()
feuert nicht sofort aus; Sie müssen den Handler manuell mit dem Objekt MediaQueryList
als Argument anrufen.
Der "alte" Ansatz
Zum Vergleich verwendet die ?ltere Methode einen Event -Listener resize
mit window.innerWidth
oder window.innerHeight
. Dies ist weniger effizient und weniger vielseitig.
Funktion CheckMediaquery () { // überprüfen Sie, ob die innere Breite des Fensters gr??er als 768px ist if (window.innnerwidth> 768) { // eine Aktion durchführen console.log ('Medienabfrage übereinstimmt!'); } } // Fügen Sie einen H?rer für die Ereignisse der Fensterresize -Gr??en?nderung hinzu window.adDeVentListener ('Gr??e', CheckMediaQuery);
Dies ist leistungsintensiv und beschr?nkt auf die überprüfung der Ansichtsfenster, im Gegensatz zum leistungsst?rkeren matchMedia()
-Ansatz.
Abschluss
matchMedia()
und MediaQueryList
bieten eine robuste Abfrageberechnung mit JavaScript-Medien, die sowohl einmalige als auch kontinuierliche überprüfungen erm?glichen und auf ?nderungen der verschiedenen Bedingungen reagieren, die sich nur einer einfachen Ansichtsfenstergr??e stellen. Der ?ltere resize
Ereignis-H?rer bleibt funktionsf?hig, ist jedoch weniger effizient und weniger featurereich. Die Flexibilit?t von matchMedia()
macht es zur bevorzugten Methode für die moderne reaktionsschnelle JavaScript -Entwicklung.
Hier ist ein Beispiel, das eine F?higkeit demonstriert, die mit der alten Methode nicht verfügbar ist: die Erkennung der Landschaftsorientierung. Dies wird h?ufig in der HTML5 -Spielentwicklung verwendet.
Das obige ist der detaillierte Inhalt vonArbeiten mit JavaScript Media -Abfragen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Hei?e KI -Werkzeuge

Undress AI Tool
Ausziehbilder kostenlos

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem v?llig kostenlosen KI-Gesichtstausch-Tool aus!

Hei?er Artikel

Hei?e Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Hei?e Themen

Es gibt drei M?glichkeiten, CSS auf einer bestimmten Seite selektiv aufzunehmen: 1. Inline -CSS, geeignet für Seiten, auf die nicht h?ufig zugegriffen wird oder einzigartige Stile erfordern. 2. Laden Sie externe CSS -Dateien mit JavaScript -Bedingungen, die für Situationen geeignet sind, in denen Flexibilit?t erforderlich ist. 3. Containment auf der Serverseite, geeignet für Szenarien mit serverseitigen Sprachen. Dieser Ansatz kann die Leistung und die Wartbarkeit der Website optimieren, erfordert jedoch ein Gleichgewicht zwischen Modularit?t und Leistung.

FlexBoxisidealForone-dimensionAllayouts, w?hrend GridSuitStwo-dimensional, komplexeLayouts.seflexBoxForAnGingItemsinasingleaxisandGridForPreciseControloverrowsandColumnSininTridrideseseseses-Signs.

Das HTML-Popover-Attribut verwandelt Elemente in Top-Layer-Elemente, die mit einer Taste oder einem JavaScript ge?ffnet und geschlossen werden k?nnen. Popovers k?nnen auf eine Reihe von M?glichkeiten abgewiesen werden, aber es gibt keine M?glichkeit, sie automatisch einzuschlie?en. Preethi hat eine Technik, die Sie k?nnen

CSS -Bl?cke Seitenrenderung, da Browser inline und externe CSS standardm??ig als wichtige Ressourcen anzeigen, insbesondere mit importierten Stylesheets, Header gro?er Mengen an Inline -CSS und nicht optimierten Medienfragestilen. 1. extrahieren kritische CSS und einbetten Sie es in HTML ein; 2. Verz?gerung des Ladens nichtkritischer CSS durch JavaScript; 3.. Verwenden Sie Medienattribute, um das Laden wie Druckstile zu optimieren. 4. Komprimieren und verschmelzen CSS, um Anfragen zu reduzieren. Es wird empfohlen, Tools zum Extrahieren von Schlüssel -CSS zu verwenden, REL = "Vorspannung" zu kombinieren, und verwenden Sie die asynchrone Belastung und verwenden Sie die Medienverz?gerungsladeverletzung, um eine überm??ige Aufteilung und eine komplexe Skriptsteuerung zu vermeiden.

Im folgenden Tutorial werde ich Ihnen zeigen, wie Sie Lottie -Animationen in Figma erstellen. Wir werden zwei farbenfrohe Designs verwenden, um zu veranlassen, wie Sie in Figma animieren k?nnen, und dann werde ich Ihnen zeigen, wie Sie von Figma zu Lottie -Animationen wechseln. Alles was Sie brauchen ist eine kostenlose Feige

Wir haben es auf die Probe gestellt und es stellt sich heraus, dass Sass JavaScript zumindest bei Logik und Puzzle-Verhalten auf niedriger Ebene ersetzen kann. Mit nichts als Karten, Mixins, Funktionen und einer Menge Mathematik haben wir es geschafft, unser Tangram -R?tsel zum Leben zu erwecken, nein J

ThebestApproachforcssDependsonTheProject'Sspecificneeds.forlargerProjects, externalcssisbetterDuetomaintainability;
