【问题标题】:Get Bootstrap navbar collapse to trigger javascript instead?获取 Bootstrap 导航栏折叠以触发 javascript?
【发布时间】:2015-09-28 20:37:35
【问题描述】:
我有一个标准的 Twitter Bootstrap 3 导航栏,上面有一些按钮(根据这里:http://getbootstrap.com/components/#navbar-default)。我想更改折叠行为(它变成低于某个屏幕宽度的下拉菜单),以便运行我的自定义 Javascript 函数,而不是创建下拉菜单。这是因为我正在对较小屏幕的界面进行更广泛的更改,而不仅仅是 CSS 所允许的(例如,我在 DOM 中移动 UI 元素等)。
我是否应该关闭导航栏的折叠行为,如果可以,如何关闭?
然后我正在考虑页面加载和页面调整大小(使用 JQuery 的 resize() 事件)如果宽度低于折叠点,我会检查新窗口宽度并触发移动 UI(通过我的函数)?
或者有更好的方法吗?
任何想法表示赞赏!
谢谢
【问题讨论】:
标签:
javascript
jquery
html
css
twitter-bootstrap
【解决方案1】:
这是可行的,我赞赏您超越 BS 样式,将平台扩展到独特的东西。
使用 less 打开 BS Navbar.less 文件。查找 .navbar-collapse { 类定义中的部分。
这是默认样式(请记住已设置移动设备优先),并将在默认(如果未覆盖)768 像素处中断为水平样式。你可以把你的样式放在这里,它会默认。您可以在此部分中放置水平样式,并删除任何会翻转到水平的 @media (min-width: @grid-float-breakpoint) { 部分(默认设置。
下一步是处理断点。我喜欢 enquire.js,因为它允许在 CSS 和 JS 侦听器之间注册相同的断点。
http://wicky.nillia.ms/enquire.js/
enquire.register("screen and (max-width: 767px)", {
match : function() {
//Do something
},
unmatch : function() {
//undo something
}
});
没有 enquire.js:
$(window).resize(function() {
if($(window).width() < 768){
//do it
}
});