根据视口宽度在 Bootstrap Navbar 和 Jasny Off Canvas 之间弹跳
Bouncing between Bootstrap Navbar and Jasny Off Canvas based on viewport width
我对 jQuery 有点陌生,正在与 Bootstrap 和 Jasny Off Canvas 一起工作。我想在 900 像素以上的所有设备上的 Bootstrap 导航栏和 900 像素以下的所有设备上 Jasny 的关闭 canvas 菜单之间切换。
为此,我使用了以下内容:
<script>
$(window).bind("load resize", function() {
var width = $(window).width();
if (width <= 900) {
$('.nav-selector').removeClass('navbar navbar-default');
$('.menu-items').removeClass('collapse navbar-collapse');
$('.nav-items-selector').removeClass('nav navbar-nav');
$('.nav-selector').addClass('navmenu navmenu-default navmenu-fixed-left');
$('.nav-items-selector').addClass('nav navmenu-nav');
}
else {
$('.nav-selector').removeClass('navmenu navmenu-default navmenu-fixed-left');
$('.nav-items-selector').removeClass('nav navmenu-nav');
$('.nav-selector').addClass('navbar navbar-default');
$('.menu-items').addClass('collapse navbar-collapse');
$('.nav-items-selector').addClass('nav navbar-nav');
}
});
</script>
这行得通,但为了我自己的学习,是否有更多 eloquent 方式在导航类型之间切换,而无需 2 个完全不同的导航(在不同的媒体查询中隐藏和可见)或必须自定义每个两种导航类型的 CSS 行。
我希望这是有道理的,如果没有请问。
您可以将整个导航定义为字符串,并根据大小将其作为 html.
插入
var width = $(window).width();
var nav1 = '<div>a very long string</div>';
var nav2 = '<div>an equally long string</div>';
if (width <= 900) {
$('#navContainer').html( $(nav1) );
} else {
$('#navContainer').html( $(nav1) );
}
您可以通过为每个导航添加一个唯一 ID 并检查它们是否已经存在来优化它,这样您就不会白白修改 DOM。
我对 jQuery 有点陌生,正在与 Bootstrap 和 Jasny Off Canvas 一起工作。我想在 900 像素以上的所有设备上的 Bootstrap 导航栏和 900 像素以下的所有设备上 Jasny 的关闭 canvas 菜单之间切换。
为此,我使用了以下内容:
<script>
$(window).bind("load resize", function() {
var width = $(window).width();
if (width <= 900) {
$('.nav-selector').removeClass('navbar navbar-default');
$('.menu-items').removeClass('collapse navbar-collapse');
$('.nav-items-selector').removeClass('nav navbar-nav');
$('.nav-selector').addClass('navmenu navmenu-default navmenu-fixed-left');
$('.nav-items-selector').addClass('nav navmenu-nav');
}
else {
$('.nav-selector').removeClass('navmenu navmenu-default navmenu-fixed-left');
$('.nav-items-selector').removeClass('nav navmenu-nav');
$('.nav-selector').addClass('navbar navbar-default');
$('.menu-items').addClass('collapse navbar-collapse');
$('.nav-items-selector').addClass('nav navbar-nav');
}
});
</script>
这行得通,但为了我自己的学习,是否有更多 eloquent 方式在导航类型之间切换,而无需 2 个完全不同的导航(在不同的媒体查询中隐藏和可见)或必须自定义每个两种导航类型的 CSS 行。
我希望这是有道理的,如果没有请问。
您可以将整个导航定义为字符串,并根据大小将其作为 html.
插入var width = $(window).width();
var nav1 = '<div>a very long string</div>';
var nav2 = '<div>an equally long string</div>';
if (width <= 900) {
$('#navContainer').html( $(nav1) );
} else {
$('#navContainer').html( $(nav1) );
}
您可以通过为每个导航添加一个唯一 ID 并检查它们是否已经存在来优化它,这样您就不会白白修改 DOM。