在Bootstrap 3中,有4种状态;超小型设备,小型设备,中型设备和大型设备。我如何才能知道该网站目前处于jQuery的哪个州?这样我可以进行一些处理,就像在超小型设备中一样,然后运行这个功能。
感谢。
答案 0 :(得分:12)
我对引导程序3的this进行了一些更改,试试这个“
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]
}
};
}
答案 1 :(得分:12)
按照@Khurshid的回答(效果非常好)我编写了一个significantly faster的原生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 "";
}
答案 2 :(得分:6)
我必须为中等大小做类似的事情。
额外小的媒体查询最多为480px;
所以你可以说:
if($(document).width > 480)
{
//Do Something
}
答案 3 :(得分:0)
Bootstrap 4版本:
function findBootstrapEnvironment() {
var envs = ["sm", "md", "lg", "xl"];
var env = "";
var $el = $("<div>");
$el.appendTo($("body"));
$el.addClass("d-block");
for (var i = envs.length - 1; i >= 0; i--) {
env = envs[i];
$el.addClass("d-" + env + "-none");
if ($el.is(":hidden")) {
$el.remove();
return env;
}
}
$el.remove();
return "xs"; //extra small
}