如何使用javascript检查视口是否小于某个宽度?

时间:2015-07-06 14:32:19

标签: javascript jquery viewport

我想要一个简单的语句来将变量bool设置为false或true。当视口小于768px时,isMobile应设置为true,超过此值时,应将其设置为false。

我不知道为什么以下代码什么都不做。控制台日志中也没有错误。

var w = $(window).width();
var isMobile = false;

function resizer() {
    if (w < 768) {
        console.log("resize");
        isMobile = true;
    } else {
        isMobile = false;
    }
}

$(window).resize(function() {
    resizer();
});

2 个答案:

答案 0 :(得分:4)

因为您不会在每次调整大小时测量宽度。试试这个:

var isMobile = false;

function resizer() {
    var w = $(window).width();
    if (w < 768) {
        console.log("resize");
        isMobile = true;
    } else { 
        isMobile = false;
    }
}

$(window).on('load resize', function(){ 
    resizer();
});

答案 1 :(得分:2)

var w = $(window).width();内移动resizer()。这将获得{em>当前尺寸window

的值

请参阅代码中的内联注释。

var isMobile = false;

function resizer() {
    var w = $(window).width();
    // Move this inside resize handler

    if (w < 768) {
        console.log("resize");
        isMobile = true;
    } else {
        isMobile = false;
    }
}

$(window).resize(function() {
    resizer();
}).trigger('resize');
// ^^^^^^^^^^^^^^^^^^
// 
// Trigger event on page load