javascript - 响应式 JavaScript : execute code only for small device width

标签 javascript jquery twitter-bootstrap responsive-design

我有一些简单的 JavaScript(嵌入在一个事件中),我只想为小型设备触发。电话等...

目前我在做

if ($(window).width() < 606) {
  do_things();
}

但这感觉很笨拙。有没有办法只对小于某个断点的设备执行此操作(除了设置较早的变量之外)?理想情况下,可以与我的 CSS 断点配合使用。

我正在使用 Bootstrap,因此可能有一个简单的选项可以利用它。

最佳答案

尽管您的代码在您看来可能很粗糙,但实际上这就是媒体查询的简而言之。如果您查看 responsive.js 的来源(为旧浏览器添加媒体查询支持的 JS 库)它包含此功能:

function getDeviceWidth() {
    if (typeof (window.innerWidth) == 'number') {
        //Non-IE
        return window.innerWidth;
    } else if (document.documentElement && (document.documentElement.clientWidth || document.documentElement.clientHeight)) {
        //IE 6+ in 'standards compliant mode'
        return document.documentElement.clientWidth;
    } else if (document.body && (document.body.clientWidth || document.body.clientHeight)) {
        //IE 4 compatible
        return document.body.clientWidth;
    }
    return 0;
}

虽然这是一种更完整的检测设备宽度的方法(并且它与 onResize 事件处理程序相结合以检测诸如旋转之类的事情),但它基本上就是您正在做的事情。

关于javascript - 响应式 JavaScript : execute code only for small device width,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18237513/

相关文章:

javascript - (!) 未使用的外部导入。 'reduce' 从外部模块 'lodash' 导入但从未使用过

javascript - jQuery 和 HTML - 点击当前 div 框 id 显示子 dvi 框内容

javascript - 如何在 Javascript 中用点替换逗号

jquery - 使用宏伟的弹出插件进行灯箱覆盖时出现重叠问题

jquery - 在移动设备上以正确的顺序显示列

javascript - 如何使用 Immutable.js 提供 Flux 存储之间的依赖关系?

javascript - PHP/Javascript 缩小

jquery - 如何在浏览器窗口中可见时添加类

html - 使用 Bootstrap 使用单选按钮进行选项卡控制

javascript - 为什么以及如何为ckeditor解决 'Uncaught TypeError: Cannot read property ' setData' of undefined'