仅使用enquire.js在移动设备的横向上删除事件

时间:2014-05-21 09:53:35

标签: iphone mobile samsung-mobile landscape-portrait enquire.js

我正在使用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);
    }

});

1 个答案:

答案 0 :(得分:1)

我想我正确地读了你的问题,所以让我试着解释一下......

enquire.js的工作方式是,在匹配至少触发一次之后,unmatch仅被称为

因此,在您的实例中,您只需要反转您的问题 - 对纵向进行媒体查询测试,并在匹配时添加事件侦听器,并在匹配时将其删除。

enquire.register('(orientation: portrait)', {

    match : function() {
        window.addEventListener('scroll',scrollWindow);
    },
    unmatch: function(){
        window.removeEventListener('scroll',scrollWindow);
    }

});

希望有所帮助