Window.matchMedia() - MediaQueryListを作成する
matchMedia()は、Windowのメソッドです。MediaQueryListを作成します。
概要
- 名前
- matchMedia
- 所属
- Window
- IDL
[NewObject] MediaQueryList matchMedia(CSSOMString query); typedef USVString CSSOMString;
- 仕様書
- https://drafts.csswg.org/cssom-view/#dom-window-matchmedia
説明
引数(query)には、メディアクエリを表す文字列を指定します。
デモ
Window.matchMedia()のデモです。"(max-width: 270px)"というメディアクエリのMediaQueryListを作成しています。ウィンドウの横幅270pxを境に、matchesの値が変化します。
<!-- このコードは編集できます。 -->
<!DOCTYPE html>
<head>
<style>
body { word-break: break-all ; tab-size: 2 ; }
div#result { white-space: pre-wrap ; }
</style>
</head>
<body>
<div id="result"></div>
<script>
var mediaQueryList = matchMedia( "(max-width: 270px)" ) ;
mediaQueryList.onchange = getMediaQueryListInfo ;
function getMediaQueryListInfo() {
document.getElementById( "result" ).textContent = "" ;
appendText( mediaQueryList + "\n" ) ;
appendText( "media: " + mediaQueryList.media + "\n" ) ;
appendText( "matches: " + mediaQueryList.matches + "\n\n" ) ;
if ( mediaQueryList.matches ) {
appendText( "メディアクエリの条件を満たしています。" ) ;
document.body.style.backgroundColor = "#fee" ;
} else {
appendText( "メディアクエリの条件を満たしていません。" ) ;
document.body.style.backgroundColor = "#eef" ;
}
}
function appendText ( text ) {
document.getElementById( "result" ).appendChild( document.createTextNode( text ) ) ;
}
getMediaQueryListInfo() ;
</script>
</body>
</html>
サポート状況
Chrome | Firefox | Safari | Edge | IE | Opera | iOS Safari | Android |
---|---|---|---|---|---|---|---|
● | ● 6+ | ● 5.1+ | ● | ● 10+ | ● 15+ | ● | ● 4.0+ |
関連記事
- MediaQueryList
- MediaQueryListは、メディアクエリを管理するための機能を備えたインターフェイスです。
- MediaQueryList.onchange
- onchangeは、MediaQueryListのイベントです。matchesの値が変化した時にchangeイベントが発生し、ここに設定したコールバック関数が呼び出されます。
- MediaQueryList.addListener()
- addListener()は、MediaQueryListのメソッドです。changeイベントを追加します。
- Window.getComputedStyle()
- getComputedStyle()は、Windowのメソッドです。要素に適用されているスタイルシートをCSSStyleDeclarationで返します。スタイルシートは初期値や継承が考慮された計算値です。