SlideShare a Scribd company logo
1 of 7
Download to read offline
Media QueriesをJavaScriptで操作

  JavaScriptでマルチデバイスに対応
Media Queries + JavaScript
   デバイスによって見栄えを変更するだけではなく、
    実行される処理も変えたい。
用語
   CSS Object Model
       DOM 2 Style 次期仕様


   window.matchMedia
       Media QueriesをJavaScriptで扱うためのメソッド


   MediaQueryList
       documentのメディアクエリのリストを保持するDOMオ
        ブジェクト
JavaScriptでメディアクエリを使用
   window.matchMediaを使うことでメディアクエリを利用。
    このクエリはMediaQueryListオブジェクトを返す。
   MediaQueryListで出来ること
       matches:
           クエリがマッチするかどうかの真偽値
       media:
           シリアライズされたメディアクエリのリスト
       addListener:
           イベントリスナをメディアクエリに追加
       removeListener:
           イベントリスナをメディアクエリから削除する
具体例
   viewportのwidthによる分岐処理
    if (window.matchMedia( “(min-width: 480px)” ).matches) {
             // 幅が480px以上の場合
    } else {
             // 幅が480px未満の場合
    }


   devicePixelRatioによる分岐処理
    if (window.matchMedia("(-webkit-min-device-pixel-ratio: 1.5)").matches) {
             // devicePixelRatioが1.5以上の場合
    } else {
              // devicePixelRatioが1.5未満の場合
    }
ライブラリ関連
   Javascript onMediaQuery
     https://github.com/JoshBarr/js-media-queries

   enquire.js - Awesome Media Queries in JavaScript
    http://wickynilliams.github.com/enquire.js/

   syze: Think @media queries powered by Javascript
    http://rezitech.github.com/syze/
まとめ
   簡易処理の場合はwindow.matchMedia を使って処理

   複雑な処理をする場合はライブラリを使用することを検討

   ブラウザの互換性を確認

More Related Content

Similar to Media queriesをjava scriptで操作

リソーステンプレート入門
リソーステンプレート入門リソーステンプレート入門
リソーステンプレート入門junichi anno
 
20141222 ふくあず Azure Mobile Services 入門
20141222 ふくあず Azure Mobile Services 入門20141222 ふくあず Azure Mobile Services 入門
20141222 ふくあず Azure Mobile Services 入門Daiyu Hatakeyama
 
1_各Atlassian製品の紹介
1_各Atlassian製品の紹介1_各Atlassian製品の紹介
1_各Atlassian製品の紹介Ricksoft
 
サンプルで学ぶCassandraアプリケーションの作り方
サンプルで学ぶCassandraアプリケーションの作り方サンプルで学ぶCassandraアプリケーションの作り方
サンプルで学ぶCassandraアプリケーションの作り方Yuki Morishita
 
Web リソースを活用した簡単アプリケーション開発(Windows Phone)
Web リソースを活用した簡単アプリケーション開発(Windows Phone)Web リソースを活用した簡単アプリケーション開発(Windows Phone)
Web リソースを活用した簡単アプリケーション開発(Windows Phone)Akira Onishi
 
サンプルアプリケーションで学ぶApache Cassandraを使ったJavaアプリケーションの作り方
サンプルアプリケーションで学ぶApache Cassandraを使ったJavaアプリケーションの作り方サンプルアプリケーションで学ぶApache Cassandraを使ったJavaアプリケーションの作り方
サンプルアプリケーションで学ぶApache Cassandraを使ったJavaアプリケーションの作り方Yuki Morishita
 
マイクロソフトWeb開発の今と今後
マイクロソフトWeb開発の今と今後マイクロソフトWeb開発の今と今後
マイクロソフトWeb開発の今と今後Akira Inoue
 
Internet Explorer 9 の新機能「固定サイト」 (Pinned sites)
Internet Explorer 9 の新機能「固定サイト」 (Pinned sites)Internet Explorer 9 の新機能「固定サイト」 (Pinned sites)
Internet Explorer 9 の新機能「固定サイト」 (Pinned sites)shigeya
 
Developing .NET 6 Blazor WebAssemby apps with Radzen Blazor component library...
Developing .NET 6 Blazor WebAssemby apps with Radzen Blazor component library...Developing .NET 6 Blazor WebAssemby apps with Radzen Blazor component library...
Developing .NET 6 Blazor WebAssemby apps with Radzen Blazor component library...Shotaro Suzuki
 
React+redux+saga 01
React+redux+saga 01React+redux+saga 01
React+redux+saga 01TIS Inc
 
レスポンシブWebデザイン【基礎編】
レスポンシブWebデザイン【基礎編】レスポンシブWebデザイン【基礎編】
レスポンシブWebデザイン【基礎編】Yasuhito Yabe
 
Windows ストア lob アプリ開発のためのガイダンスとフレームワークのご紹介 rev
Windows ストア lob アプリ開発のためのガイダンスとフレームワークのご紹介 revWindows ストア lob アプリ開発のためのガイダンスとフレームワークのご紹介 rev
Windows ストア lob アプリ開発のためのガイダンスとフレームワークのご紹介 revShotaro Suzuki
 
XAML と C# を使った Windows ストアアプリ(LOB)構築のためのtips Prism 4.5 & Kona project 等のご紹介
XAML と C# を使った Windows ストアアプリ(LOB)構築のためのtips   Prism 4.5 & Kona project 等のご紹介XAML と C# を使った Windows ストアアプリ(LOB)構築のためのtips   Prism 4.5 & Kona project 等のご紹介
XAML と C# を使った Windows ストアアプリ(LOB)構築のためのtips Prism 4.5 & Kona project 等のご紹介Shotaro Suzuki
 
WordPress × kintone API連携実践_たにぐち まこと氏
WordPress × kintone API連携実践_たにぐち まこと氏WordPress × kintone API連携実践_たにぐち まこと氏
WordPress × kintone API連携実践_たにぐち まこと氏kintone papers
 
【BS14】Blazor WebAssemblyとJavaScriptのインターオペラビリティ
【BS14】Blazor WebAssemblyとJavaScriptのインターオペラビリティ 【BS14】Blazor WebAssemblyとJavaScriptのインターオペラビリティ
【BS14】Blazor WebAssemblyとJavaScriptのインターオペラビリティ 日本マイクロソフト株式会社
 
モダンWeb開発ワークショップ
モダンWeb開発ワークショップモダンWeb開発ワークショップ
モダンWeb開発ワークショップStaffnet_Inc
 
Android Architecture Componentsの新機能
Android Architecture Componentsの新機能Android Architecture Componentsの新機能
Android Architecture Componentsの新機能Damper Matsu
 

Similar to Media queriesをjava scriptで操作 (20)

リソーステンプレート入門
リソーステンプレート入門リソーステンプレート入門
リソーステンプレート入門
 
実践 NestJS
実践 NestJS実践 NestJS
実践 NestJS
 
20141222 ふくあず Azure Mobile Services 入門
20141222 ふくあず Azure Mobile Services 入門20141222 ふくあず Azure Mobile Services 入門
20141222 ふくあず Azure Mobile Services 入門
 
1_各Atlassian製品の紹介
1_各Atlassian製品の紹介1_各Atlassian製品の紹介
1_各Atlassian製品の紹介
 
サンプルで学ぶCassandraアプリケーションの作り方
サンプルで学ぶCassandraアプリケーションの作り方サンプルで学ぶCassandraアプリケーションの作り方
サンプルで学ぶCassandraアプリケーションの作り方
 
Web リソースを活用した簡単アプリケーション開発(Windows Phone)
Web リソースを活用した簡単アプリケーション開発(Windows Phone)Web リソースを活用した簡単アプリケーション開発(Windows Phone)
Web リソースを活用した簡単アプリケーション開発(Windows Phone)
 
サンプルアプリケーションで学ぶApache Cassandraを使ったJavaアプリケーションの作り方
サンプルアプリケーションで学ぶApache Cassandraを使ったJavaアプリケーションの作り方サンプルアプリケーションで学ぶApache Cassandraを使ったJavaアプリケーションの作り方
サンプルアプリケーションで学ぶApache Cassandraを使ったJavaアプリケーションの作り方
 
マイクロソフトWeb開発の今と今後
マイクロソフトWeb開発の今と今後マイクロソフトWeb開発の今と今後
マイクロソフトWeb開発の今と今後
 
Internet Explorer 9 の新機能「固定サイト」 (Pinned sites)
Internet Explorer 9 の新機能「固定サイト」 (Pinned sites)Internet Explorer 9 の新機能「固定サイト」 (Pinned sites)
Internet Explorer 9 の新機能「固定サイト」 (Pinned sites)
 
Developing .NET 6 Blazor WebAssemby apps with Radzen Blazor component library...
Developing .NET 6 Blazor WebAssemby apps with Radzen Blazor component library...Developing .NET 6 Blazor WebAssemby apps with Radzen Blazor component library...
Developing .NET 6 Blazor WebAssemby apps with Radzen Blazor component library...
 
React+redux+saga 01
React+redux+saga 01React+redux+saga 01
React+redux+saga 01
 
レスポンシブWebデザイン【基礎編】
レスポンシブWebデザイン【基礎編】レスポンシブWebデザイン【基礎編】
レスポンシブWebデザイン【基礎編】
 
Windows ストア lob アプリ開発のためのガイダンスとフレームワークのご紹介 rev
Windows ストア lob アプリ開発のためのガイダンスとフレームワークのご紹介 revWindows ストア lob アプリ開発のためのガイダンスとフレームワークのご紹介 rev
Windows ストア lob アプリ開発のためのガイダンスとフレームワークのご紹介 rev
 
Webに今求められているレベル: HTML5 コントロールを利用した開発
Webに今求められているレベル: HTML5 コントロールを利用した開発Webに今求められているレベル: HTML5 コントロールを利用した開発
Webに今求められているレベル: HTML5 コントロールを利用した開発
 
XAML と C# を使った Windows ストアアプリ(LOB)構築のためのtips Prism 4.5 & Kona project 等のご紹介
XAML と C# を使った Windows ストアアプリ(LOB)構築のためのtips   Prism 4.5 & Kona project 等のご紹介XAML と C# を使った Windows ストアアプリ(LOB)構築のためのtips   Prism 4.5 & Kona project 等のご紹介
XAML と C# を使った Windows ストアアプリ(LOB)構築のためのtips Prism 4.5 & Kona project 等のご紹介
 
WordPress × kintone API連携実践_たにぐち まこと氏
WordPress × kintone API連携実践_たにぐち まこと氏WordPress × kintone API連携実践_たにぐち まこと氏
WordPress × kintone API連携実践_たにぐち まこと氏
 
Data API 2.0
Data API 2.0Data API 2.0
Data API 2.0
 
【BS14】Blazor WebAssemblyとJavaScriptのインターオペラビリティ
【BS14】Blazor WebAssemblyとJavaScriptのインターオペラビリティ 【BS14】Blazor WebAssemblyとJavaScriptのインターオペラビリティ
【BS14】Blazor WebAssemblyとJavaScriptのインターオペラビリティ
 
モダンWeb開発ワークショップ
モダンWeb開発ワークショップモダンWeb開発ワークショップ
モダンWeb開発ワークショップ
 
Android Architecture Componentsの新機能
Android Architecture Componentsの新機能Android Architecture Componentsの新機能
Android Architecture Componentsの新機能
 

Media queriesをjava scriptで操作

  • 1. Media QueriesをJavaScriptで操作 JavaScriptでマルチデバイスに対応
  • 2. Media Queries + JavaScript  デバイスによって見栄えを変更するだけではなく、 実行される処理も変えたい。
  • 3. 用語  CSS Object Model  DOM 2 Style 次期仕様  window.matchMedia  Media QueriesをJavaScriptで扱うためのメソッド  MediaQueryList  documentのメディアクエリのリストを保持するDOMオ ブジェクト
  • 4. JavaScriptでメディアクエリを使用  window.matchMediaを使うことでメディアクエリを利用。 このクエリはMediaQueryListオブジェクトを返す。  MediaQueryListで出来ること  matches:  クエリがマッチするかどうかの真偽値  media:  シリアライズされたメディアクエリのリスト  addListener:  イベントリスナをメディアクエリに追加  removeListener:  イベントリスナをメディアクエリから削除する
  • 5. 具体例  viewportのwidthによる分岐処理 if (window.matchMedia( “(min-width: 480px)” ).matches) { // 幅が480px以上の場合 } else { // 幅が480px未満の場合 }  devicePixelRatioによる分岐処理 if (window.matchMedia("(-webkit-min-device-pixel-ratio: 1.5)").matches) { // devicePixelRatioが1.5以上の場合 } else { // devicePixelRatioが1.5未満の場合 }
  • 6. ライブラリ関連  Javascript onMediaQuery https://github.com/JoshBarr/js-media-queries  enquire.js - Awesome Media Queries in JavaScript http://wickynilliams.github.com/enquire.js/  syze: Think @media queries powered by Javascript http://rezitech.github.com/syze/
  • 7. まとめ  簡易処理の場合はwindow.matchMedia を使って処理  複雑な処理をする場合はライブラリを使用することを検討  ブラウザの互換性を確認