--- title: Sprawdzanie media queries slug: Web/CSS/Media_Queries/Testing_media_queries translation_of: Web/CSS/Media_Queries/Testing_media_queries original_slug: Web/Guide/CSS/Sprawdzanie_media_queries ---
{{SeeCompatTable}}
DOM dostarcza funkcje, dzięki którym możliwym jest sprawdzenie wyników media query. Jest to możliwe przy użyciu interfejsu {{domxref("MediaQueryList") }} i jego funkcji oraz właściwości. Po utworzeniu obiektu {{domxref("MediaQueryList") }} możesz zbadać wynik zapytania (query) lub (dodatkowo) otrzymywać powiadomienie, gdy rezultat się zmieni.
Zanim będziesz mógł ocenić wynik zapytania, musisz utworzyć obiekt {{domxref("MediaQueryList") }}, reprezentujący media query. Aby to uczynić użyj metody {{domxref("window.matchMedia") }}.
Na przykład, jeśli chcesz ustalić czy orientacja urządzenia jest pionowa czy pozioma, możesz skorzystać z takiego zapytania jak poniżej:
var mql = window.matchMedia("(orientation: portrait)"); /* sprawdzamy czy orientacja obiektu, jest pionowa; zwraca obiekt MediaQueryList */
Po wykonaniu powyższej metody, mamy dostęp do obiektu {{domxref("MediaQueryList") }}, który ma kilka przydatnych metod i właściwości. Jedną z nich jest cecha matches
, która zwraca prawdę
lub fałsz
.
if (mql.matches) { /* wykryta orientacja pionowa */ } else { /* wykryta orientacja pozioma */ }
W przypadku, gdy chciałbyś na bieżąco dostawać alerty o stanie zapytania (query), skorzystaj z funkcji addListener()
, która jest zdecydowanie wydajniejsza aniżeli sprawdzanie "ręcznie" co jakiś czas. By skorzystać z tego ułatwienia, wywołaj tę funkcję na obiekcie {{domxref("MediaQueryList") }}, określając obserwator, który implementuje interfejs {{domxref("MediaQueryListListener") }}:
var mql = window.matchMedia("(orientation: portrait)"); mql.addListener(zmianaOrientacji); zmianaOrientacji(mql);
Powyższy kod tworzy media query list, a następnie dołącza listener. Zauważ, że po dodaniu listenera, przywołaliśmy listenera bezpośrednio - trzecia linijka. To pozwala nam określić aktualną orientację urządzenia.
Zaimplementowana metoda zmianaOrientacji()
pozwala nam wykonać pewne czynności, gdy zmieni się położenie urządzenia.
function zmianaOrientacji(mql) { if (mql.matches) { /* wykryta orientacja pionowa */ } else { /* wykryta orientacja pozioma */ } }
Gdy nie potrzebujesz już powiadomień dotyczących zmiany wartości zapytania, możesz wywołać metodę removeListener()
dostępną w obiekcie {{domxref("MediaQueryList") }}:
mql.removeListener(zmianaOrientacji);
{{CompatibilityTable}}
Feature | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Basic support | 9 | {{CompatGeckoDesktop("6.0") }} | 10 | 12.1 | 5.1 |
Feature | Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|
Basic support | 3.0 | {{CompatUnknown}} | 10 | 12.1 | 5 |