在我的旅行中,我通过 css3 媒体查询在一些响应式网站上工作。这是我在媒体查询发生更改时需要触发javascript的情况下找到并使用的修改后的解决方案:
// define a query here
var theQuery = "(min-width: 960px)";
var mql = window.matchMedia( theQuery );
var TO = setTimeout( function(){}, 100);
var handleMediaChange = function (mediaQueryList) {
if (mediaQueryList.matches) {
// the media query evaluates to true
clearTimeout(TO);
window.state = 0;
TO = setTimeout( function(){
// javascript actions go here
}, 100 );
} else {
// @media query evaluates to false
clearTimeout(TO);
window.state = 0;
TO = setTimeout( function(){
// javascript actions go here
}, 100 );
}
}
mql.addListener(handleMediaChange);
handleMediaChange(mql);
本质上,它允许我们定义一个查询,然后添加一个侦听器来监视窗口对象是否会触发我们的查询。当它触发时,我已经定义了两组 javascript,每组用于媒体查询评估为真或假,但是如果条件,您可以删除它,并让任何更改执行一些脚本...
试一试,希望它有所帮助