でのみjquery関数を実行するにはどうすればよい@media screen
ですか?
バックグラウンド:
screen.css
スタイルシートとスタイルシートがありprint.css
ます。私は 2 つの JavaScript 関数を持っていますが、そのうちの 1 つはページの必要な印刷版では実行したくありません。
でのみjquery関数を実行するにはどうすればよい@media screen
ですか?
バックグラウンド:
screen.css
スタイルシートとスタイルシートがありprint.css
ます。私は 2 つの JavaScript 関数を持っていますが、そのうちの 1 つはページの必要な印刷版では実行したくありません。
ページの読み込み時にスクリプトが実行されるため、を使用してif (Modernizr.mq('only screen')) {$('h1').text('media screen');}
いるときにスクリプトを実行するため、を使用しても意味がありません@media screen
。
代わりに、メディアクエリが変更されるたびに検出し、それに応じてページを変更する必要があります。enquire.jsのようなものを使用して、これを簡単に行うことができます。
// This is just an example, be more creative!
enquire.register("screen", {
match: function() {
$('#only-show-on-screen').show();
},
unmatch: function() {
$('#only-show-on-screen').hide();
}
});
最新のブラウザでは、matchesMediaを使用できます。
if (window.matchMedia("screen").matches) {
....
}
古いブラウザもサポートしたい場合は、matchMedia.jsのようなポリフィルを使用できます
Modernizr を使用できると思います。ただし、javascript でそれを行うためのネイティブな方法が必要です。
試したことはありませんが、以下のようなものです。
if (Modernizr.mq('only screen'))
{
..
}
メディア クエリをサポートしていない古いブラウザには注意してください。