首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用Enquire.js实现基于媒体查询的切换功能

用Enquire.js实现基于媒体查询的切换功能
EN

Stack Overflow用户
提问于 2013-03-08 04:20:34
回答 1查看 220关注 0票数 1

这和的问题是一样的,但我希望有人能更彻底地回答这个问题。

我正在尝试使用两个不同的js函数创建一个“移动”和一个“完整”版本的站点。我理解响应性设计,并且我正在通过CSS进行大部分更改,但是这两个版本需要有两个相互排斥的js功能。Enquire.js允许使用媒体查询,如果不调整浏览器窗口的大小,它们会很好地工作。但是,如果您将窗口的大小从"full“调整为"mobile",那么在我的示例中,函数full()不会停止运行,尽管我在下面尽了最大的努力(可能不是很好)。但是,警报总是正确的:"true“表示full(),"false”表示mobile(),函数似乎忽略if语句。如果有更好的选择,我可以不用询问。

js-decder.js

代码语言:javascript
复制
$(function() {

window['fullEnabled'];
window['mobileEnabled'];

enquire.register("screen and (min-width:680px)", {

match : function() {

 window['fullEnabled'] = true;
 window['mobileEnabled'] = false;
 full();

}

}).register("screen and (max-width:679px)", {

match : function() {

 window['fullEnabled'] = false;
 window['mobileEnabled'] = true;
 mobile();

}

}).listen();

});

full.js

代码语言:javascript
复制
function full() {

    if (window['fullEnabled']==true) {
        alert(window['fullEnabled']);
        // do other stuff
    }

}

mobile.js

代码语言:javascript
复制
function mobile() {

    if (window['mobileEnabled']==true) {
        alert(window['fullEnabled']);
        // do other stuff
    }

}
EN

回答 1

Stack Overflow用户

发布于 2013-04-06 10:16:24

看起来您的媒体查询是引起您交叉的问题的原因。

试一试:

代码语言:javascript
复制
enquire.register("screen and (max-width:679px)", {
    match : function() {
        //small screen
    }
}).register("screen and (min-width:680px)", {
    match : function() {
        //large screen
    }
}).listen();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15286661

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档