我怎么能只运行在一个jQuery功能@media screen
?
背景:
我有一个screen.css
样式和print.css
样式表。 我有两个JavaScript函数,其中一个我不想在印刷版本要获取的页面上运行 。
我怎么能只运行在一个jQuery功能@media screen
?
背景:
我有一个screen.css
样式和print.css
样式表。 我有两个JavaScript函数,其中一个我不想在印刷版本要获取的页面上运行 。
任何脚本会在页面加载时,所以使用跑出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原生方式。
http://modernizr.com/docs/#mq
我从来没有尝试过,但它是这样的:
if (Modernizr.mq('only screen'))
{
..
}
用旧的浏览器不支持媒体查询提防。