拥Bootstrap入怀——导航栏篇


Posted in Javascript onMay 30, 2016

写在前面
在该文中,我结合自己做的一个山水网页来聊一下Bootstrap的使用,网页截图如下:

拥Bootstrap入怀——导航栏篇

完整网页的效果和代码可以点击这里查看或者到CodePen上查看。网页要达到的主要效果包括以下几点:

1、导航栏的登陆、注册按钮点击后弹出登陆、注册modal框,并且登陆、注册窗口可切换,菜单栏为响应式

2、导航栏中的山水选项可下拉,点击下拉中的九寨沟``丽江``水帘洞会定位到相应的tab

3、幻灯片大屏轮播

4、tab页点击切换

下面我们开始拥Bootstrap入怀。

Bootstrap想必小伙伴们都听说过或使用过,在这个网页中,我用的是cdn Bootstrap v3.3.4,点击这里可以下载最新版本的Bootstrap v3.3.5或者点击这里自行到官网上下载,相信总有一款适合你~~~~~~

这篇文章让我们先聊一下导航栏。

导航栏
在使用bs之前首先要引用bs,包括css和js,引用的方式很简单,和引用普通外部文件相同,可以使用cdn链接,也可以放在本地引用。下面给出代码。

<html lang="zh-CN">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>myvin's山水</title>
<link rel="stylesheet" href="http://cdn.bootcss.com/bootstrap/3.3.4/css/bootstrap.min.css">

<!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
 <!--[if lt IE 9]>
 <script src="http://cdn.bootcss.com/html5shiv/3.7.2/html5shiv.min.js"></script>
 <script src="http://cdn.bootcss.com/respond.js/1.4.2/respond.min.js"></script>
 <![endif]-->
</head>
<!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
<script src="http://cdn.bootcss.com/jquery/1.11.2/jquery.min.js"></script>
<!-- Include all compiled plugins (below), or include individual files as needed -->
<script src="http://cdn.bootcss.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>

在该山水网页例子中,我用的是cdn链接。

同时,因为bs的插件是基于jq的,所以jq也得引入。

先给出导航栏完整代码

<nav class="navbar navbar-default navbar-fixed-top navbar-inverse">
 <div class="container">
  <!-- Brand and toggle get grouped for better mobile display -->
  <div class="navbar-header">
  <button type="button" class="navbar-toggle collapsed" 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="#">自己定义一个商标</a>
  </div>

  <!-- 左上角的导航 -->
  <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
  <ul class="nav navbar-nav" >
  <li ><a href="#">主页<span class="sr-only">(current)</span></a></li>
  <li class="dropdown">
  <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">山水 <span class="caret"></span></a>
  <ul class="dropdown-menu" role="menu">
   <li><a href="#jiuzhaigou">九寨沟</a></li>
   <li><a href="#lijiang">丽江</a></li>
   <li><a href="#shuiliandong">水帘洞</a></li>
   <li class="divider"></li>
   <li><a href="#">更多..</a></li>
  </ul>
  </li>
  <li data-toggle="modal" data-target="#about"><a href="#" >关于</a></li>
  </ul>


  <form class="navbar-form navbar-right" role="search">
  <div class="form-group">
  <input type="text" class="form-control" placeholder="搜索景点..">
  <button type="button" class="btn btn-default">Go</button>
  </div>
  </form>


  <ul class="nav navbar-nav navbar-right">
  <li data-toggle="modal" data-target="#signin-signup-tab" id="signin-button"><a href="#" >登陆</a></li>
  <li data-toggle="modal" data-target="#signin-signup-tab" id="signup-button"><a href="#" >注册</a></li>
  </ul>
  </div>
 </div>
 </nav>

bs的导航组件都依赖同一个.nav类,代码分开讲解。先看这一段:

<button type="button" class="navbar-toggle collapsed" 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>

这段代码的作用是viewport减小时,导航栏上的菜单选项会折叠,点击折叠图标,导航栏菜单选项会纵向排列。nav中的.navbar-inverse类是反色,小伙伴们可以把.navbar-inverse类去掉观察下效果。因为我是一个黑色控,所以在这里我用反色。想用其他颜色的,土豪金啊,小伙伴们可以按照自己的口味自行搭配。.navbar-brand类可以用来定义自己网站的商标,我在这里以自己定义一个商标的文字代替,感兴趣的小伙伴可以添加自己的logo。.dropdown-toggle类可以实现一个下拉, .divider类可以实现一个浅深色的分割线。

搜索框和登陆、注册中的.navbar-right类顾名思义就是置右。

data属性
在这里有必要说一下bs的data属性。在bs中,开发者可以仅仅通过data属性来使用bs中的所有js插件,这是bs中的一等api,也经常是我们使用js插件的首选方式。比如上面代码中的data-toggle="collapse"data-toggle="dropdown"等,这些就是bs中的使用js插件的方式。

如果大家还想深入学习,可以点击这里进行学习,再为大家附3个精彩的专题:

以上就是本文的全部内容,希望对大家学习Bootstrap导航栏有所帮助。

Javascript 相关文章推荐
对xmlHttp对象的理解
Jan 17 Javascript
$.getJSON在IE下失效的原因分析及解决方法
Jun 16 Javascript
div浮层,滚动条移动,位置保持不变的4种方法汇总
Dec 11 Javascript
javascript 中__proto__和prototype详解
Nov 25 Javascript
jquery验证手机号是否正确实例讲解
Nov 17 Javascript
jquery判断对象是否为空并遍历对象的简单实例
Jul 26 Javascript
jQuery弹出层后禁用底部滚动条(移动端关闭回到原位置)
Aug 29 Javascript
jQuery用FormData实现文件上传的方法
Nov 21 Javascript
原生js封装自定义滚动条
Mar 24 Javascript
使用svg实现动态时钟效果
Jul 17 Javascript
vue+springboot实现项目的CORS跨域请求
Sep 05 Javascript
Vuejs学习笔记之使用指令v-model完成表单的数据双向绑定
Apr 29 Javascript
基于Bootstrap实现tab标签切换效果
Apr 15 #Javascript
JavaScript编写带旋转+线条干扰的验证码脚本实例
May 30 #Javascript
Bootstrap编写导航栏和登陆框
May 30 #Javascript
Bootstrap+jfinal退出系统弹出确认框的实现方法
May 30 #Javascript
Bootstrap+jfinal实现省市级联下拉菜单
May 30 #Javascript
基于Bootstrap里面的Button dropdown打造自定义select
May 30 #Javascript
BootStrap下jQuery自动完成的样式调整
May 30 #Javascript
You might like
php利用cookie实现访问次数统计代码
2011/05/19 PHP
初步介绍PHP扩展开发经验分享
2012/09/06 PHP
PHP邮件群发机实现代码
2016/02/16 PHP
详解在PHP的Yii框架中使用行为Behaviors的方法
2016/03/18 PHP
php实现学生管理系统
2020/03/21 PHP
PHP使用栈解决约瑟夫环问题算法示例
2017/08/27 PHP
php分享朋友圈的实现代码
2019/02/18 PHP
5秒后跳转效果(setInterval/SetTimeOut)
2013/05/03 Javascript
使用jquery局部刷新(jquery.load)从数据库取出数据
2014/01/22 Javascript
js调试工具Console命令详解
2014/10/21 Javascript
跟我学习javascript的prototype,getPrototypeOf和__proto__
2015/11/17 Javascript
AngularJS教程 ng-style 指令简单示例
2016/08/03 Javascript
Vue.JS入门教程之事件监听
2016/12/01 Javascript
利用Query+bootstrap和js两种方式实现日期选择器
2017/01/10 Javascript
详解angularJs中自定义directive的数据交互
2017/01/13 Javascript
angular十大常见问题
2017/03/07 Javascript
jquery平滑滚动到顶部插件使用详解
2017/05/08 jQuery
JS 组件系列之Bootstrap Table 冻结列功能IE浏览器兼容性问题解决方案
2017/06/30 Javascript
vue使用$emit时,父组件无法监听到子组件的事件实例
2018/02/26 Javascript
Vue.directive 自定义指令的问题小结
2018/03/04 Javascript
vue页面切换过渡transition效果
2018/10/08 Javascript
解决JavaScript中0.1+0.2不等于0.3问题
2018/10/23 Javascript
JS 实现发送短信验证码的“59秒后重新发送验证短信”功能
2019/08/23 Javascript
vue 单页应用和多页应用的优劣
2020/10/22 Javascript
[02:42]岂曰无衣,与子同袍!DOTA2致敬每一位守护人
2020/02/17 DOTA
python list删除元素时要注意的坑点分享
2018/04/18 Python
Pycharm配置远程调试的方法步骤
2018/12/17 Python
详解Numpy数组转置的三种方法T、transpose、swapaxes
2019/05/27 Python
Python rabbitMQ如何实现生产消费者模式
2020/08/24 Python
Scrapy实现模拟登录的示例代码
2021/02/21 Python
荷兰最大的鞋子、服装和运动折扣店:Bristol
2021/01/07 全球购物
PHP数据运算类型都有哪些
2013/11/05 面试题
银行求职自荐书
2014/06/25 职场文书
信用卡工作证明模板
2014/09/14 职场文书
2019军训心得体会
2019/06/27 职场文书
MySQL 十大常用字符串函数详解
2021/06/30 MySQL