このコードを考えると:
mql = window.matchMedia("(max-width: 800px)");
mql.addListener(mqlHandler);
function mqlHandler(mql) {
if(mql.matches) {
alert('OK');
};
そして、この他のコード:
if(Modernizr.mq("(max-width: 800px)")) {
alert('OK');
};
matchMedia
バージョンは期待どおりに動作し、ページのサイズを何度変更しても、画面のサイズが 800px 未満の場合はアラートが表示されますが、2 番目のバージョンでは、画面幅が小さいページをリロードするとアラートが表示されますその後画面のサイズを変更すると、アラートは表示されません。
これを de Modernizr docs から読みました。「最大幅または方向のクエリは、後で変更される可能性がある現在の状態に対して評価されます。」これはこの特定の動作を指していますか、それともコードに何か問題がありますか?