gpt4 book ai didi

javascript - 如何检测您正在使用 Twitter Bootstrap API 的设备 View ?

转载 作者:IT王子 更新时间:2023-10-29 02:56:58 25 4
gpt4 key购买 nike

我刚刚开始为即将进行的项目使用 Twitter Bootstrap API。主导航包含 3 个主要元素:

  • 站点导航
  • 社交链接导航
  • 搜索站点表单

在移动设备上查看网站时,我正在使用折叠插件折叠网站导航和搜索表单。移动 View 有 2 个按钮,单击这些按钮可打开/关闭搜索表单或主导航。

但是,如果我关闭搜索表单,然后将浏览器的大小调整为桌面 View ,搜索表单是否仍隐藏在此 View 中?

我读过有关使用 visible-mobile 等类的信息,但这些似乎与折叠插件冲突。我也意识到我可能会编写自己的 CSS hack 来解决这个问题,但我想我会问是否有更简单的解决方案。

Bootstrap 有用于显示、显示、隐藏和隐藏的事件,所以我想也许我可以编写一些自定义 JS,在每个特定的设备 View 中显示或隐藏这些项目。但是我当时不知道如何检测我使用的是哪个设备。

想法?

提前致谢

最佳答案

如果您想知道自己所处的环境,请尝试使用 Bootstrap 自己的 CSS 类。创建一个元素,将它添加到页面,应用它的辅助类并检查它是否被隐藏以确定它是否是当前环境。以下函数就是这样做的:

Bootstrap 4

function findBootstrapEnvironment() {
let envs = ['xs', 'sm', 'md', 'lg', 'xl'];

let el = document.createElement('div');
document.body.appendChild(el);

let curEnv = envs.shift();

for (let env of envs.reverse()) {
el.classList.add(`d-${env}-none`);

if (window.getComputedStyle(el).display === 'none') {
curEnv = env;
break;
}
}

document.body.removeChild(el);
return curEnv;
}

Bootstrap 3

function findBootstrapEnvironment() {
var envs = ['xs', 'sm', 'md', 'lg'];

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

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

$el.addClass('hidden-'+env);
if ($el.is(':hidden')) {
$el.remove();
return env;
}
}
}

Bootstrap 2

function findBootstrapEnvironment() {
var envs = ['phone', 'tablet', 'desktop'];

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

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

$el.addClass('hidden-'+env);
if ($el.is(':hidden')) {
$el.remove();
return env;
}
}
}

关于javascript - 如何检测您正在使用 Twitter Bootstrap API 的设备 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14441456/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com