利用JQuery实现复杂的顶部导航栏功能

今天给大家介绍一下如何利用JQuery实现复杂的顶部导航栏功能,复杂指的是导航栏选项下面显示的是文字+图片的内容。

简单的导航栏我们一般利用多个ul+li进行嵌套使用,可以实现多级的导航栏功能,可是界面相对单一,而且不能展示图片和文字混排的效果,所以今天给大家介绍的就是图片文字混排的导航栏的功能。下面看具体例子来解析:

html界面代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>导航菜单</title>
<link rel="stylesheet" type="text/css" href="css/style.css" />
</head>
<body>
<div class="wrapper"> 
	<div class="head">
		<div class="topNav">
			<div class="topNavList">
				<a href="#">关于我们</a>
				<a href="#">行业考察</a>
				<a href="#">产品中心</a>
				<a href="#">技术服务</a>
				<a href="#">新闻中心</a>
				<a href="#">联系我们</a>
				<div class="topNavSub">
					<div class="activeLeft"></div>
					<div class="activeRight"></div>
				</div>
			</div>
		</div>

		<div class="subNavWrapper">
			<div class="subNavSet">
				<div class="subNav sub0">
					<span><i class="subBgTopLeft"></i><i class="subBgBotLeft"></i></span>
					<ul>
						<li>
							<a href="#">关于我们1</a> 
							<a href="#">关于我们2</a> 
							<a href="#">关于我们3</a>
						</li>
					</ul>
					<span class="features">
						<i><a href="#"><img width="177" height="100" src="images/index1.jpg"><em><strong>净世界,美生活。</strong></em></a></i>
						<i><a href="#"><img width="177" height="100" src="images/index1.jpg"><em><strong>诚信 专业 激情。</strong></em></a></i>
					</span>
				</div>

				<div class="subNav sub1">
					<span><i class="subBgTopLeft"></i><i class="subBgBotLeft"></i></span>
					<ul>
						<li>
							<a href="#">行业考察1</a> 
							<a href="#">行业考察2</a> 
							<a href="#">行业考察3</a>
						</li>
					</ul>
					<span class="features">
						<i><a href="#"><img width="177" height="100" src="images/index1.jpg"><em><strong>诚信 专业 激情。</strong></em></a></i> 
						<i><a href="#"><img width="177" height="100" src="images/index1.jpg"><em><strong>行业的领跑者。</strong></em></a></i>
					</span>
				</div>

				<div class="subNav sub2">
					<span><i class="subBgTopLeft"></i><i class="subBgBotLeft"></i></span>
					<ul>
						<li>
							<a href="#">电子功能材料</a> 
							<a href="#">高性能纤维材料</a> 
							<a href="#">净化工程</a> 
							<a href="#">超净产品</a> 
							<a href="#">医疗产品</a> 
							<a href="#">护理产品</a> 
							<a href="#">精密模具</a>
						</li>
					</ul>

					<span class="features">
						<i><a href="#"><img width="177" height="100" src="images/index1.jpg"><em><strong>精雕细刻 巧夺天工。</strong></em></a></i>
						<i><a href="#"><img width="177" height="100" src="images/index1.jpg"><em><strong>精益求精 无微不至。</strong></em></a></i>
					</span>
				</div>

				<div class="subNav sub3">
					<span><i class="subBgTopLeft"></i><i class="subBgBotLeft"></i></span>
					<ul>
						<li>
							<a href="#">技术研发</a>
							<a href="#">专业测试</a> 
							<a href="#" >技术咨询服务</a>
						</li>
					</ul>
					<span class="features">
						<i><a href="#" ><img width="177" height="100" src="images/index1.jpg" ><em><strong>高新技术产品的研发和生产。</strong></em></a></i>
						<i><a href="#"><img width="177" height="100" src="images/index2.jpg"><em><strong>提供优质的品牌产品和服务。</strong></em></a></i>
					</span>
				</div>

				<div class="subNav sub4">
					<span><i class="subBgTopLeft"></i><i class="subBgBotLeft"></i></span>
					<ul>
						<li>
							<a href="#"> 基本信息</a> 
							<a href="#">公司治理</a> 
							<a href="#">定期报告</a> 
							<a href="#"> 临时公告</a> 
							<a href="#">投资者交流</a>
							<a href="#">分析研究报告</a> 
							<a href="#"> 股息资料</a>
						</li>
					</ul>
					<span class="features">
						<i><a href="#"><img width="177" height="100" src="images/index1.jpg"><em><strong>沟通创造价值。</strong></em></a></i>
						<i><a href="#"><img width="177" height="100" src="images/index1.jpg"><em><strong>稳定和可持续发展。</strong></em></a></i>
					</span>
				</div>

				<div class="subNav sub5">
					<span><i class="subBgTopLeft"></i><i class="subBgBotLeft"></i></span>
					<ul>
						<li>
							<a href="#">人才理念</a> 
							<a href="#">人才招聘</a> 
						</li>
					</ul>
					<span class="features">
						<i><a href="#"><img width="177" height="100" src="images/index1.jpg"><em><strong>xxxxxxxxxxxxx。</strong></em></a></i>
						<i><a href="#"><img width="177" height="100" src="images/index1.jpg"><em><strong>xxxxxxxxxxx。</strong></em></a></i>
					</span>
				</div>
			</div>
		</div>     
	</div>
</div>
<script type="text/javascript" src="js/jquery-1.9.1.min.js"></script>
<script type="text/javascript" src="js/script.js"></script>
</body>
</html>

js代码:

$(document).ready(function() {
    nav();
})
var idx;
var arr_offsetX = [0, 144, 233, 345, 400, 450];
function nav() {
    $(".topNavList a").hover(function() {
        idx = $(".topNavList a").index(this);
        $(".subNavWrapper").show();
        $(".activeLeft").show();
        $(".activeRight").show();
        var offsetXArrow = $(".topNavList a").eq(idx).position().left - 125.7;
        var w = $(".topNavList a").eq(idx).width() + 22;
        $(".topNavList a").eq(idx).addClass("activeTopNav");
        $(".activeLeft").css("left", offsetXArrow+'px');
        $(".activeRight").css("left", offsetXArrow+w+'px');
        $(".subNavSet div").eq(idx).show();
        if (idx == 0 || idx == 1 || idx == 3 || idx == 5) {
            $(".subNavSet .subNav").eq(idx).find("ul").css("width", "132px");
            $(".subNavSet .features").eq(idx).css("left", "195px");
        } else {
            $(".subNavSet .subNav").eq(idx).find("ul").css("width", "392px");
            $(".subNavSet .features").eq(idx).css("left", "315px");
        };
    }, function() {
        $(".subNavWrapper").hide();
        $(".activeLeft").hide();
        $(".activeRight").hide();
        $(".topNavList a").eq(idx).removeClass("activeTopNav");
        $(".subNavSet div").eq(idx).hide();
    })

    $(".subNavSet div").hover(function() {
        $(".subNavWrapper").show();
        $(".topNavList a").eq(idx).addClass("activeTopNav");
        $(".activeLeft").show();
        $(".activeRight").show();
        $(this).show();
    }, function() {
        $(".subNavWrapper").hide();
        $(".activeLeft").hide();
        $(".topNavList a").eq(idx).removeClass("activeTopNav");
        $(".activeRight").hide();
        $(this).hide();
    })
}

css代码:

/*common start*/
* {
	padding: 0;
	margin: 0;
	border: 0;
	outline: none;
	list-style-type: none;
}

em, i {
	font-style: normal;
}

a {
	color: #666;
	text-decoration: none;
}

a:hover {
	color: #066;
}

body {
	color: #666;
	font: 12px/22px "Simsun", "宋体";
	overflow-x: hidden;
}
/*common end*/

.wrapper {
	width: 100%;
	overflow: hidden;
	position: relative;
	/*left: 50%;*/
	top: 0;
	/*margin: 0 0 0 -500px;*/
	height:600px;
}

/*head start*/
.topNav {
	width: 100%;
	height: 47px;
	background: url(../images/navbg.png);
	z-index: 1;
}

.topNavList {
	width: 1000px;
	height: 47px;
	margin: 0 auto;
}

.topNavSub {
	position: relative;
}

.topNav a {
	display: block;
	float: left;
	height: 47px;
	line-height: 47px;
	color: #066;
	font: 16px/47px "Microsoft YaHei", "Simsun", "宋体";
	margin: 0 53px 0 13px;
	padding: 0 7px;
}
.activeTopNav {
	background: url(../images/navItemBg_13.png) 0 -1px;
}

.activeLeft {
	width: 8px;
	height: 51px;
	position: absolute;
	top: -1px;
	background: url(../images/navItemBg_12.png);
	display: none;
}

.activeRight {
	width: 10px;
	height: 51px;
	position: absolute;
	top: -1px;
	background: url(../images/navItemBg_14.png);
	display: none;
}


/*sub start*/
.subNavWrapper {
	width: 1000px;
	height: 300px;
	position: absolute;
	left: 50%;
	top: 44px;
	margin: 0 0 0 -495px;
	z-index: 1;
	display: none;
}

.subNavSet {
	width: 1000px;
	height: 300px;
	margin: 0 auto;
	position: relative;
}

.subNav {
	position: relative;
	display: none;
}

.subNav ul {
	width: 132px;
	height: 234px;
	position: absolute;
	left: 23px;
	top: 16px;
	color: #333;
	font: 14px/30px "Simsun", "宋体";
}

.subNav ul a {
	width: 130px;
	display: block;
	padding: 0 0 0 16px;
	float: left;
	color: #333;
	font: 14px/34px "Microsoft YaHei", "Simsun", "宋体";
	background: url(../images/arrowSub.png) left center no-repeat;
}

.subNav ul a:hover {
	color: #066;
	text-decoration: underline;
}

.sub1 {
	left: 144px;
}

.sub2 {
	left: 168px;
}

.sub3 {
	left: 262px;
}

.sub4 {
	left: 157px;
}

.sub5 {
	left: 263px;
}

.sub0 .subBgTopLeft, .sub1 .subBgTopLeft {
	width: 706px;
	height: 7px;
	display: block;
	background: url(../images/subTop0.png);
}

.sub3 .subBgTopLeft {
	width: 706px;
	height: 7px;
	display: block;
	background: url(../images/subTop3.png);
}


.sub5 .subBgTopLeft {
	width: 706px;
	height: 7px;
	display: block;
	background: url(../images/subTop5.png);
}

.sub0 .subBgBotLeft, .sub1 .subBgBotLeft, .sub3 .subBgBotLeft, .sub5 .subBgBotLeft {
	width: 706px;
	height: 206px;
	display: block;
	background: url(../images/subBot0.png);
}

.sub2 .subBgTopLeft {
	width: 832px;
	height: 7px;
	display: block;
	background: url(../images/subTop2.png);
}

.sub4 .subBgTopLeft {
	width: 832px;
	height: 7px;
	display: block;
	background: url(../images/subTop4.png);
}

.sub2 .subBgBotLeft, .sub4 .subBgBotLeft {
	width: 832px;
	height: 206px;
	display: block;
	background: url(../images/subBot2.png);
}

.features {
	position: absolute;
	left: 195px;
	top: 19px;
}

.features i {
	width: 174px;
	display: block;
	float: left;
	margin: 0 40px;
}

.features a:hover img {
	border: 1px solid #448c8c;
}

.features i img {
	display: block;
	float: left;
	border: 1px solid #d7d8d8;
	margin-bottom: 12px;
}

.features i em {
	width: 174px;
	display: block;
	float: left;
	line-height: 20px;
}
/*sub end*/

运行截图:

实现思路:

1.首先用css实现对整体导航栏的布局,然后将下级菜单隐藏起来。

2.然后利用js实现对下级菜单显示位置的控制。

3.利用JQuery实现对界面的展示和隐藏操作。

如果对文章有什么疑义或者有啥问题都可以找我交流QQ:208017534 欢迎打扰!!!

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏非著名程序员

我用了3年在阿里从月薪8K到年薪70万的方法

我大学并不是计算机专业的,学的是学电气工程的,毕业后稀泥糊涂的踏入了程序员行业。相信不少人跟我一样的。

1074
来自专栏VRPinea

单身狗看过来,这家网站竟然提供“虚拟女友”体验!

3516
来自专栏知晓程序

想找份好工作?这 4 款小程序,让你 offer 拿到手软

小程序体验师:陈丹阳 对于在校大学生来说,提前为自己找份实习/工作,积攒职场经验,能有效缓解临毕业没工作的焦虑。

843
来自专栏腾讯NEXT学位

招募|项目审阅者

3118
来自专栏十月梦想

腾讯云自媒体分享计划

“腾讯云自媒体计划”是由腾讯云发起的为期一年的为广大自媒体扶持的计划,对于有 20 篇以上符合投稿要求原创技术文章的博主或微信公众号,提供各大技术社区及平台百万...

852
来自专栏小文博客

腾讯云自媒体分享计划——自媒体作者福音

2556
来自专栏大数据架构师专家

我们离Google SRE还有多远?

原文链接:https://www.jianshu.com/p/6c222a0832ee

842
来自专栏程序员互动联盟

什么样的人不适合学编程?

软件蚕食一切。未来属于程序员。所以人人都想当程序员。但是并不是每个人都能当好程序员。在你做出决定前还是先看看自己能不能当好程序员吧。可是什么样的人不适合当程序员...

2554
来自专栏云加头条

腾讯云自媒体分享计划常见问题

A:该计划的扶持期限为一年,从扶持申请通过之日开始计算。扶持资源会在审核通过后发放到你的腾讯云账户。

1.1K8
来自专栏web前端教室

在校生,简历中如何写项目经历?

他这个很好回答,也很不好回答。好回答是指,项目经历嘛,你怎么做的你就怎么写。不好回答是又分二方面,一是根本没有项目经历,自然没得写;二是有项目经历,但确实是不知...

792

扫码关注云+社区