在 bootjack 中使用 bootstrap 导航栏
Using bootstrap navbar in bootjack
我正在使用 Twitter bootstrap 的 CSS 创建一个 standard bootstrap navbar 然后调用 Dropdown.use();
使导航栏自动工作。
当我调整页面大小时或在移动设备上查看它时,导航栏显示此菜单按钮,当您单击它时该按钮没有任何反应。
我将如何使用 dquery/bootjack 连接此菜单按钮以显示此示例中所示的菜单:
(PS,热爱 bootjack,感谢所有参与其中的人!!!)
澄清一下,我不想包含 jquery 和 bootstrap js 来让它工作,我的整个 dart 应用程序包括 400 多个文件(图片、html、dart、less 等)小于 400kB,添加这些 js 库将使应用程序的大小爆炸式增长。我只是在寻找 bootstrap 用来使菜单按钮工作的机制,以便我可以在 dart / dquery / bootjack 中重写它,或者如果已经有可以做到这一点的 bootjack 机制,如何使用它.
更新,一些要求的代码:
pubspec.yaml:
....
environment:
sdk: '>=1.0.0 <2.0.0'
dependencies:
bootjack_datepicker: any
less_dart: any
bootjack: any
browser: any
http: any
transformers:
- $dart2js:
commandLineOptions: [--enable-experimental-mirrors]
- less_dart:
entry_point: web/styles/main.less
build_mode: dart
index.html:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
....
<link rel="stylesheet" href="styles/main.css">
</head>
<body>
<nav class="navbar navbar-inverse navbar-static-top" role="navigation">
<div class="container-fluid">
<!-- Brand and toggle get grouped for better mobile display -->
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse"
data-target="#bs-example-navbar-collapse-1">
<span class="sr-only">Toggle navigation</span> <span
class="icon-bar"></span> <span class="icon-bar"></span> <span
class="icon-bar"></span>
</button>
<a class="navbar-brand" href="#">My Application</a>
</div>
<!-- Collect the nav links, forms, and other content for toggling -->
<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
<ul class="nav navbar-nav">
<li>
<a class="dropdown-toggle" data-toggle="dropdown">Item<span class="caret"></span></a>
<ul class="dropdown-menu" role="menu">
<li><a href="#itemss-list">Items</a></li>
<li><a href="#foo-bar">Foo Bar</a></li>
<li class="divider"></li>
<li>
<a href="#item-create">
<span class="glyphicon glyphicon-plus"></span>
Create Item
</a>
</li>
</ul>
</li>
...
<script type="application/dart" src="main.dart"></script>
<script data-pub-inline src="packages/browser/dart.js"></script>
</body>
</html>
main.less:
@import 'web/styles/bootstrap/bootstrap.less';
@import 'web/styles/bootjack-calendar/calendar.less';
@media screen {
body {
background: #FEFEFE;
}
...
}
main.dart:
import 'dart:html';
import 'pages/pages.dart';
import 'dart:convert' show JSON;
import 'package:dquery/dquery.dart';
import 'package:bootjack/bootjack.dart';
import 'package:bootjack_datepicker/bootjack_datepicker.dart';
...
void main() {
...
// enable bootjack functionality
Transition.use();
Calendar.use();
Dropdown.use();
Modal.use();
...
}
在切换了几次工作导航栏上的 类 之后,我意识到它非常简单 - 添加/输出到 类 使导航栏弹出/ 在移动视图中时退出。
ButtonElement navbarToggle = querySelector("button.navbar-toggle");
navbarToggle.onClick.listen((e){
DivElement menu = querySelector("div.navbar-collapse");
if (menu.classes.contains("in")){
menu.classes
..remove("in")
..add("out");
} else if (menu.classes.contains("out")){
menu.classes
..remove("out")
..add("in");
}
});
我正在使用 Twitter bootstrap 的 CSS 创建一个 standard bootstrap navbar 然后调用 Dropdown.use();
使导航栏自动工作。
当我调整页面大小时或在移动设备上查看它时,导航栏显示此菜单按钮,当您单击它时该按钮没有任何反应。
我将如何使用 dquery/bootjack 连接此菜单按钮以显示此示例中所示的菜单:
(PS,热爱 bootjack,感谢所有参与其中的人!!!)
澄清一下,我不想包含 jquery 和 bootstrap js 来让它工作,我的整个 dart 应用程序包括 400 多个文件(图片、html、dart、less 等)小于 400kB,添加这些 js 库将使应用程序的大小爆炸式增长。我只是在寻找 bootstrap 用来使菜单按钮工作的机制,以便我可以在 dart / dquery / bootjack 中重写它,或者如果已经有可以做到这一点的 bootjack 机制,如何使用它.
更新,一些要求的代码:
pubspec.yaml:
....
environment:
sdk: '>=1.0.0 <2.0.0'
dependencies:
bootjack_datepicker: any
less_dart: any
bootjack: any
browser: any
http: any
transformers:
- $dart2js:
commandLineOptions: [--enable-experimental-mirrors]
- less_dart:
entry_point: web/styles/main.less
build_mode: dart
index.html:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
....
<link rel="stylesheet" href="styles/main.css">
</head>
<body>
<nav class="navbar navbar-inverse navbar-static-top" role="navigation">
<div class="container-fluid">
<!-- Brand and toggle get grouped for better mobile display -->
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse"
data-target="#bs-example-navbar-collapse-1">
<span class="sr-only">Toggle navigation</span> <span
class="icon-bar"></span> <span class="icon-bar"></span> <span
class="icon-bar"></span>
</button>
<a class="navbar-brand" href="#">My Application</a>
</div>
<!-- Collect the nav links, forms, and other content for toggling -->
<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
<ul class="nav navbar-nav">
<li>
<a class="dropdown-toggle" data-toggle="dropdown">Item<span class="caret"></span></a>
<ul class="dropdown-menu" role="menu">
<li><a href="#itemss-list">Items</a></li>
<li><a href="#foo-bar">Foo Bar</a></li>
<li class="divider"></li>
<li>
<a href="#item-create">
<span class="glyphicon glyphicon-plus"></span>
Create Item
</a>
</li>
</ul>
</li>
...
<script type="application/dart" src="main.dart"></script>
<script data-pub-inline src="packages/browser/dart.js"></script>
</body>
</html>
main.less:
@import 'web/styles/bootstrap/bootstrap.less';
@import 'web/styles/bootjack-calendar/calendar.less';
@media screen {
body {
background: #FEFEFE;
}
...
}
main.dart:
import 'dart:html';
import 'pages/pages.dart';
import 'dart:convert' show JSON;
import 'package:dquery/dquery.dart';
import 'package:bootjack/bootjack.dart';
import 'package:bootjack_datepicker/bootjack_datepicker.dart';
...
void main() {
...
// enable bootjack functionality
Transition.use();
Calendar.use();
Dropdown.use();
Modal.use();
...
}
在切换了几次工作导航栏上的 类 之后,我意识到它非常简单 - 添加/输出到 类 使导航栏弹出/ 在移动视图中时退出。
ButtonElement navbarToggle = querySelector("button.navbar-toggle");
navbarToggle.onClick.listen((e){
DivElement menu = querySelector("div.navbar-collapse");
if (menu.classes.contains("in")){
menu.classes
..remove("in")
..add("out");
} else if (menu.classes.contains("out")){
menu.classes
..remove("out")
..add("in");
}
});