使用JQuery实现WordPress多层下拉导航

WordPress jquery drop down menu 使用JQuery实现WordPress多层下拉导航

多层下拉导航(Drop Down Menu),已经是一项十分普遍的技术。只是其实作方法各不相同,随着CSS的普及,有不少人试着以纯CSS的方式来实现,这种方法的最大问题是IE6不能完全支持,要克服这个障碍,需要比本身的程式还要多出很多的代码,所以并不是很多人采用。另外一种做法就是使用JavaScript,也是我们今天要讲的方法。由于时间关系(今天比较忙),本篇只讲怎么做,明天再具体讲解为什么这么做。今天我们要做到跟这个一样的效果

要用JavaScript的话,我会直接想到JQuery,这算是目前最流行的JavaScript库(lib),有了它,我们能省下很多的时间。而且WordPress本身也包含JQuery,你可以在wp-includes\js里面找到。所以要在WordPress使用JQuery就更简单了,只要在<head></head>之间加入:

<?php wp_enqueue_script('jquery'); ? >

就可以了。现在我们假设我们的导航div是topmenu,请在上面那句的下一行加入:

<script type='text/javascript'>
$("#topmenu a").removeAttr("title");
jQuery(document).ready(function() {
jQuery("#topmenu ul").css({display: "none"}); // Opera Fix
jQuery("#topmenu li").hover(function(){
		jQuery(this).find('ul:first').css({visibility: "visible",display: "none"}).show(268);
		},function(){
		jQuery(this).find('ul:first').css({visibility: "hidden"});
		});
});
</script>

这就是我们要用到的全部JavaScript,好像很少对吧,这就是JQuery可爱的地方。

再来我们看一下WordPress那边,就像平常那样用wp_list_pages()就可以了:

<ul id="topmenu">
<?php wp_list_pages(’sort_column=menu_order&title_li=’); ? >
</ul>

最后就是CSS,也是最重要,最复杂的部分:

#topmenu, #topmenu ul {
	margin:0;
	padding:0;
	list-style-type:none;
	list-style-position:outside;
	position:relative;
	line-height:1.5em;
	z-index:300;
	width:100%;
	background:#fff;
	font-weight:bold;
} 

#topmenu a {
	display:block;
	padding:0.25em 1em;
	color:#686868;
	border-right:1px solid #c8c8c8;
	text-decoration:none;
	background:#fff;
} 

#topmenu a:hover {
	background:#888;
	color:#fff;
} 

#topmenu li {
	float:left;
	position:relative;
}

#topmenu ul {
	position:absolute;
	display:none;
	width:12em;
	top:1.9em;
	left:-1px;
} 

#topmenu ul a {
	border-left:1px solid #c8c8c8;
} 

#topmenu li ul {
	border-top:1px solid #c8c8c8;
	width:14.1em;
} 

#topmenu li ul a {
	width:12em;
	height:auto;
	float:left;
	border-bottom:1px solid #c8c8c8;
} 

#topmenu ul ul {
	top:auto;
} 

#topmenu li ul ul {
	left:12em;
	margin:0px 0 0 10px;
} 

#topmenu li:hover ul ul, #topmenu li:hover ul ul ul, #topmenu li:hover ul ul ul ul {
	display:none;
} 

#topmenu li:hover ul, #topmenu li li:hover ul, #topmenu li li li:hover ul, #topmenu li li li li:hover ul {
	display:block;
}

你可以将以上的CSS加入到主题的style.css文件里,这样就能实现多层下拉导航的效果。明天我会具体讲解这些代码的意义。写得有点匆忙,有错漏的地方,欢迎指正。

[via: kriesi.at|seoadsensethemes]

, , ,

One Comment

留下评论

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>