在折叠时显示不同的导航栏项目 (ngx-bootstrap)
Show different navbar items on collapse (ngx-bootstrap)
使用 ngx-bootstrap,是否可以根据导航栏是否折叠显示不同的导航栏 bootstrap 项?
我试图通过为 collapsed 和 !collapsed 制作 div 来做到这一点。不幸的是,两者都在 !collapsed 时显示。
StackBlitz:https://stackblitz.com/edit/angular-startup-proj-ddztm4
<nav class="navbar navbar-expand-sm navbar-light bg-light">
<a class="navbar-brand"
href="#">Navbar</a>
<button class="navbar-toggler"
type="button"
data-toggle="collapse"
data-target=".navbarSupportedContent"
aria-controls="navbarSupportedContent"
aria-label="Toggle navigation"
[attr.aria-expanded]="!isCollapsed"
(click)="isCollapsed = !isCollapsed">
<span class="navbar-toggler-icon"></span>
</button>
<!-- show only when not collapsed -->
<div class="collapse navbar-collapse navbarSupportedContent"
[ngClass]="{'hide': isCollapsed}">
<ul class="navbar-nav mr-auto">
<li class="nav-item active">
<a class="nav-link"
href="#">Link One - full screen</a>
</li>
<li class="nav-item">
<a class="nav-link"
href="#">Link Two - full screen</a>
</li>
</ul>
</div>
<!-- show only when collapsed -->
<div class="collapse navbar-collapse navbarSupportedContent"
[ngClass]="{'show': !isCollapsed}">
<ul class="navbar-nav mr-auto">
<li class="nav-item active">
<a class="nav-link"
href="#">Link Two - collapsed</a>
</li>
<li class="nav-item">
<a class="nav-link text-success"
href="#">Link Three - collapsed</a>
</li>
</ul>
</div>
</nav>
TS:
isCollapsed = true;
将[style.display]="isCollapsed?'inherit':'none'"
添加到<ul class="navbar-nav mr-auto"
中是可能的:
<!-- show only when not collapsed -->
<div class="collapse navbar-collapse navbarSupportedContent"
[ngClass]="{'hide': isCollapsed}">
<ul class="navbar-nav mr-auto">
<!-- rest of code .... -->
</div>
<!-- show only when collapsed -->
<div class="collapse navbar-collapse navbarSupportedContent"
[ngClass]="{'show': !isCollapsed}">
<ul class="navbar-nav mr-auto" [style.display]="isCollapsed?'inherit':'none'">
<!-- rest of code .... -->
</div>
更新:
要使其响应,您可以使用 @media queries(example in w3school):
@media (max-width: 576px){
ul.collapse{
display:none !important;
}
}
@media (min-width: 576px){
ul.full{
display:none !important;
}
}
在css
中然后添加如下ul
类:
<!-- show only when not collapsed -->
`<ul class="navbar-nav mr-auto collapse">`
<!-- show only when collapsed -->
<ul class="navbar-nav mr-auto full" [style.display]="isCollapsed?'inherit':'none'">
使用 ngx-bootstrap,是否可以根据导航栏是否折叠显示不同的导航栏 bootstrap 项?
我试图通过为 collapsed 和 !collapsed 制作 div 来做到这一点。不幸的是,两者都在 !collapsed 时显示。
StackBlitz:https://stackblitz.com/edit/angular-startup-proj-ddztm4
<nav class="navbar navbar-expand-sm navbar-light bg-light">
<a class="navbar-brand"
href="#">Navbar</a>
<button class="navbar-toggler"
type="button"
data-toggle="collapse"
data-target=".navbarSupportedContent"
aria-controls="navbarSupportedContent"
aria-label="Toggle navigation"
[attr.aria-expanded]="!isCollapsed"
(click)="isCollapsed = !isCollapsed">
<span class="navbar-toggler-icon"></span>
</button>
<!-- show only when not collapsed -->
<div class="collapse navbar-collapse navbarSupportedContent"
[ngClass]="{'hide': isCollapsed}">
<ul class="navbar-nav mr-auto">
<li class="nav-item active">
<a class="nav-link"
href="#">Link One - full screen</a>
</li>
<li class="nav-item">
<a class="nav-link"
href="#">Link Two - full screen</a>
</li>
</ul>
</div>
<!-- show only when collapsed -->
<div class="collapse navbar-collapse navbarSupportedContent"
[ngClass]="{'show': !isCollapsed}">
<ul class="navbar-nav mr-auto">
<li class="nav-item active">
<a class="nav-link"
href="#">Link Two - collapsed</a>
</li>
<li class="nav-item">
<a class="nav-link text-success"
href="#">Link Three - collapsed</a>
</li>
</ul>
</div>
</nav>
TS:
isCollapsed = true;
将[style.display]="isCollapsed?'inherit':'none'"
添加到<ul class="navbar-nav mr-auto"
中是可能的:
<!-- show only when not collapsed -->
<div class="collapse navbar-collapse navbarSupportedContent"
[ngClass]="{'hide': isCollapsed}">
<ul class="navbar-nav mr-auto">
<!-- rest of code .... -->
</div>
<!-- show only when collapsed -->
<div class="collapse navbar-collapse navbarSupportedContent"
[ngClass]="{'show': !isCollapsed}">
<ul class="navbar-nav mr-auto" [style.display]="isCollapsed?'inherit':'none'">
<!-- rest of code .... -->
</div>
更新:
要使其响应,您可以使用 @media queries(example in w3school):
@media (max-width: 576px){
ul.collapse{
display:none !important;
}
}
@media (min-width: 576px){
ul.full{
display:none !important;
}
}
在css
中然后添加如下ul
类:
<!-- show only when not collapsed -->
`<ul class="navbar-nav mr-auto collapse">`
<!-- show only when collapsed -->
<ul class="navbar-nav mr-auto full" [style.display]="isCollapsed?'inherit':'none'">