下記linkタグはリアルタイムにブラウザ幅の変化に伴い対応します
ブラウザをリサイズするとpc.cssが適応されたりsmartphone.cssがウインドウ幅によって自動で切り替わり適用されます 非常に便利です
これをJavaScriptで
div=document.createElement("div");
div.id="a";
div.style.width="300px";
div.style.height="300px";
document.body.appendChild(div);
if (window.matchMedia('(max-width:640px)').matches) {
a.style.background="red";
}else{
alert("pc");
}
のようにしてもブラウザの幅を変えたリアルタイムな変化は行いません
ページ内に記述した
if (window.matchMedia('(max-width:640px)').matches) {
}
全ての処理に対し、下記linkタグと同様リアルタイムで変化させる処理をするにはどうしたらいいでしょうか
イベントリスナ resizeで処理をしていくというのは、上記のようなパターンが100個あったり、複雑な処理だった場合にはかなり面倒です
一括でリアルタイム性を持たせ、処理する場合どのような手法が考えられますか
<link rel="stylesheet" media="(min-width: 640px)" href="pc.css"> <link rel="stylesheet" media="(max-width: 640px)" href="smartphone.css">