拥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 相关文章推荐
JavaScript 事件记录使用说明
Oct 20 Javascript
Chrome中JSON.parse的特殊实现
Jan 12 Javascript
js 去掉空格实例 Trim() LTrim() RTrim()
Jan 07 Javascript
学习Bootstrap组件之下拉菜单
Jul 28 Javascript
基于jQuery实现点击列表加载更多效果
May 31 Javascript
BootStrap中Datepicker控件带中文的js文件
Aug 10 Javascript
JSON与js对象序列化实例详解
Mar 16 Javascript
vue init webpack myproject构建项目 ip不能访问的解决方法
Mar 20 Javascript
解决angular2 获取到的数据无法实时更新的问题
Aug 31 Javascript
JS浅拷贝和深拷贝原理与实现方法分析
Feb 28 Javascript
Vue 理解之白话 getter/setter详解
Apr 16 Javascript
js+canvas实现两张图片合并成一张图片的方法
Nov 01 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
dedecms模版制作使用方法
2007/04/03 PHP
php读取3389的脚本
2014/05/06 PHP
ThinkPHP访问不存在的模块跳转到404页面的方法
2014/06/19 PHP
php文件操作小结(删除指定文件/获取文件夹下的文件名/读取文件夹下图片名)
2016/05/09 PHP
ThinkPHP5.0框架验证码功能实现方法【基于第三方扩展包】
2019/03/11 PHP
基于Jquery的实现回车键Enter切换焦点
2010/09/14 Javascript
页面回到顶部的三种实现(锚标记,js)
2012/10/01 Javascript
新增加的内容是如何将div的scrollbar自动移动最下面
2014/01/02 Javascript
JavaScript和JQuery的鼠标mouse事件冒泡处理
2015/06/19 Javascript
原生js实现addClass,removeClass,hasClass方法
2016/04/27 Javascript
JavaScript接口的实现三种方式(推荐)
2016/06/14 Javascript
jQuery绑定自定义事件的魔法升级版
2016/06/30 Javascript
详解Javascript中prototype属性(推荐)
2016/09/03 Javascript
CSS3 media queries结合jQuery实现响应式导航
2016/09/30 Javascript
jQuery UI仿淘宝搜索下拉列表功能
2017/01/10 Javascript
jQuery中extend函数简单用法示例
2017/10/11 jQuery
web前端开发中常见的多列布局解决方案整理(一定要看)
2017/10/15 Javascript
jQuery ajax读取本地json文件的实例
2017/10/31 jQuery
Angular项目从新建、打包到nginx部署全过程记录
2017/12/09 Javascript
layui 设置table 行的高度方法
2018/08/17 Javascript
vue中的v-if和v-show的区别详解
2019/09/01 Javascript
Node.js HTTP服务器中的文件、图片上传的方法
2019/09/23 Javascript
[01:33:07]VGJ.T vs Newbee Supermajor 败者组 BO3 第一场 6.6
2018/06/07 DOTA
[10:28]2018DOTA2国际邀请赛寻真——VGJ.S寻梦之路
2018/08/15 DOTA
Python比较两个图片相似度的方法
2015/03/13 Python
Pycharm设置去除显示的波浪线方法
2018/10/28 Python
在keras下实现多个模型的融合方式
2020/05/23 Python
Python Mock模块原理及使用方法详解
2020/07/07 Python
凯撒娱乐:Caesars Entertainment
2018/02/23 全球购物
乐高官方旗舰店:LEGO积木玩具
2019/04/06 全球购物
舞蹈专业大学生职业规划范文
2014/03/12 职场文书
员工薪酬激励方案
2014/06/13 职场文书
校园环保广播稿(3篇)
2014/09/15 职场文书
借款协议书
2014/09/16 职场文书
JavaScript继承的三种方法实例
2021/05/12 Javascript
深入讲解Vue中父子组件通信与事件触发
2022/03/22 Vue.js