我正在使用enquire.js所以我可以在调整大小时使用javascript而不是事件监听器来使用CSS媒体查询,这对于网络性能来说很难。
我创建了一个触发scrollWindow()的事件,只有在手机处于纵向模式时才需要应用该事件。在横向模式下,无论在横向上哪个设备,都需要删除此事件。我真的尝试了不同的媒体查询公式,我检查了互联网,找不到一个有助于我的解决方案...
这是一个响应式项目但如果它有帮助我必须至少定位三星Galaxy S3和iphone4。在下面,我将为您提供此时的代码:
enquire.register('screen and (max-height: 640px) and (orientation: landscape)', {
match : function() {
window.removeEventListener('scroll',scrollWindow);
},
unmatch: function(){
window.addEventListener('scroll',scrollWindow);
}
});
答案 0 :(得分:1)
我想我正确地读了你的问题,所以让我试着解释一下......
enquire.js的工作方式是,在匹配至少触发一次之后,unmatch仅被称为。
因此,在您的实例中,您只需要反转您的问题 - 对纵向进行媒体查询测试,并在匹配时添加事件侦听器,并在匹配时将其删除。
enquire.register('(orientation: portrait)', {
match : function() {
window.addEventListener('scroll',scrollWindow);
},
unmatch: function(){
window.removeEventListener('scroll',scrollWindow);
}
});
希望有所帮助