【问题标题】:Angular2 Menu bootstrapAngular2 菜单引导程序
【发布时间】:2017-11-11 08:14:35
【问题描述】:

我已经建立了一个带开关的菜单,它工作正常。 当用户单击链接时,我希望菜单再次折叠。 我通过使我自己的函数也能工作来做到这一点。

我现在遇到的问题是,当菜单折叠时,切换使用了一个很好的过渡。我使用 show 和 hide 所以没有过渡 我认为过渡 w 是由引导程序中的 css 调节的,但我认为情况并非如此。

如何在点击链接时向我的菜单添加漂亮的过渡。

这是我的代码:

<nav class="navbar navbar-default  navbar-static-top">
    <div class="container-fluid">
        <div class="navbar-header">
            <a class="navbar-brand" href="#">MyMenu</a>
            <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#myNav" >
                <span class="sr-only">Toggle navigation</span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
            </button>
        </div>
        <div class="collapse navbar-collapse" id="myNav">
            <ul class='nav navbar-nav navbar-right'>
                <li><a [routerLink]="['/info']" (click)="closeMenu()"></span><br/>Info</a></li>
                <li><a [routerLink]="['/aboutus']" (click)="closeMenu()"><br/>aboutus</a></li>
                <li><a [routerLink]="['/contact']" (click)="closeMenu()"><br/>contact</a></li>
            </ul>
        </div>
    </div>
</nav>

【问题讨论】:

  • Bootstrap 应该管理过渡。如果没有,那么你忘记了什么!尝试复制粘贴他们的导航,看看转换是否有效。如果确实如此,请仔细查看您缺少的内容。如果您想要自己的折叠功能,我建议您查看Angular transitions
  • @tricheriche 是的,当您单击切换按钮时,引导程序会进行转换,但我也想在单击菜单链接时使用转换以平滑折叠
  • 抱歉没看懂,请看我的回答

标签: angular menu css-transitions bootstrap-4


【解决方案1】:

按照我的评论:如果要折叠菜单,请使用 Jquery 进行操作:

$('.nav a').on('click', function(){
    $('.btn-navbar').click(); //bootstrap 2.x
    $('.navbar-toggle').click() //bootstrap 3.x 
});

要在你的组件中使用 Jquery,在导入下面,做

declare var $: any;

【讨论】:

  • 他正在 Angular2 中寻找可能的解决方案。你能用 angular2(typescript) 更新它吗?
  • 这是 Angular2 解决方案。 JQuery 是一个 Javascript 库,这意味着除了声明这样的变量之外,您不能在 Typescript 中使用它。您仍然可以参考JQueryStatic,但这不是他要求的。
  • @trichetriche 我在哪里添加 jqeury 在我的组件?
  • 正如我所说,在您的导入下方,输入declare var $: any;。简单解释一下:$ 是一个全局变量,声明它允许您使用它(就像对 Typescript 说 It's ok, I know this variable)。如果你想测试它,在你的ngOnInit() 中,添加$('body').click(() =&gt; alert('hello')); 并点击你的页面,你会看到它有效
  • 谢谢,我现在就试试!
猜你喜欢
  • 2019-01-30
  • 2014-09-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-03
  • 2021-07-22
  • 1970-01-01
  • 2017-10-24
相关资源
最近更新 更多