jQuery检测Bootstrap 3状态

use*_*781 8 javascript css jquery responsive-design twitter-bootstrap-3

在Bootstrap 3中,有4个状态; 超小型设备,小型设备,中型设备和大型设备.我如何才能知道该网站目前处于jQuery的哪个州?这样我就可以像处理超小型设备那样进行处理,然后运行此功能.

谢谢.

Khu*_*hid 12

我做了一些改动,以这个为引导3,试试这个"

function findBootstrapEnvironment() {
    var envs = ["ExtraSmall", "Small", "Medium", "Large"];
    var envValues = ["xs", "sm", "md", "lg"];

    var $el = $('<div>');
    $el.appendTo($('body'));

    for (var i = envValues.length - 1; i >= 0; i--) {
        var envVal = envValues[i];

        $el.addClass('hidden-'+envVal);
        if ($el.is(':hidden')) {
            $el.remove();
            return envs[i]
        }
    };
}
Run Code Online (Sandbox Code Playgroud)


awj*_*awj 12

按照@ Khurshid的回答(效果非常好),我编写了一个本机JavaScript实现,速度明显更快:

function findBootstrapEnvironment() {
    var envs = ["xs", "sm", "md", "lg"],    
        doc = window.document,
        temp = doc.createElement("div");

    doc.body.appendChild(temp);

    for (var i = envs.length - 1; i >= 0; i--) {
        var env = envs[i];

        temp.className = "hidden-" + env;

        if (temp.offsetParent === null) {
            doc.body.removeChild(temp);
            return env;
        }
    }
    return "";
}
Run Code Online (Sandbox Code Playgroud)


w3b*_*k3r 6

我不得不为中等大小做类似的事情.

超小的媒体查询高达480px;

所以你可以这样说:

if($(document).width > 480)
{

  //Do Something
}
Run Code Online (Sandbox Code Playgroud)

  • 这是迄今为止我遇到的最好的解决方案.除了开发人员将切换浏览器宽度以测试响应行为之外,其中的主要原因是没有人!站点用户将一次使用一台设备,可以是台式机,平板电脑或手持设备.我认为这个解决方案建议牢记在心! (2认同)
  • 您仍然可以让用户更改浏览器端,例如将其拖动到第二个屏幕或更改其大小,以便他们可以看到下面的窗口和其他用户案例..但它是一个简单的例子,它只是提醒人们..检查宽度.. (2认同)