Javascript 和移动浏览器宽度问题

标签 javascript jquery jquery-mobile media-queries

我的目标是当浏览器宽度小于500px时防止js加载到元素上。基本上,我不希望它在大多数移动设备上加载。

var mq = window.matchMedia( "(max-width: 500px)" );
    if (mq.matches) {
       // Don't load function //
    }

    else {
       // Load function //
    }

这看起来很简单,当我在笔记本电脑上尝试时,它运行得很好。当超过 500px 时,js 会加载。低于或等于 500 像素时,它不会加载。

但是,在我的手机上,我的 js 媒体查询不起作用,因为该函数已加载。有人建议这可能与我的元标记有关。

<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1.0, user-scalable=no"/>

我不确定我做错了什么,但我似乎无法成功将移动浏览器宽度中继到 JavaScript。非常感谢任何帮助。

最佳答案

对于移动浏览器,由于移动屏幕中的像素密度较高,您可以通过使用 max-width: 500px 媒体查询获得奇怪的结果。最好的选择是使用设备媒体查询,例如最大设备宽度。所以在你的情况下它看起来像这样:

var mq = window.matchMedia("(max-device-width: 500px)");
if (mq.matches) {
   // Don't load function //
}

else {
   // Load function //
}

关于Javascript 和移动浏览器宽度问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28035651/

相关文章:

JQuery 调整大小在加载时不起作用

javascript - 如何在单击并运行新功能时停止运行超时 jquery 功能?

jquery - 列表自动分隔符

javascript - 从数据构建类似表格的结构

Javascript 检测新打开的窗口来自哪里

php - 用php动态添加内容到div

javascript - 只允许数字和破折号的文本字段,也接受 ctrl 命令

javascript - 如果第一个函数是正确的,则陷入简单的情况

jquery页面导航动态js加载问题

javascript - 如何在公牛队列中收听已完成的事件 - 仅适用于当前工作