原理很简单.
涉及到知识点:
1、jquery的position注意这里是jquery的position,不是css的position
offset的概念
2、>的概念。
3、.ulh>li 的优先级要比直接在li上加 .selected的样式高。因为.ulh>li 是元素样式,位于优先级老2.
支持无限分级的菜单,兼容ie8+,chorm,firefox
支持无限的伸缩。支持url效果。图标和样式欢迎大家自行改造。欢迎大家使用。
代码如下
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
.ulh {
padding: 0;
list-style: none;
font-family: "Microsoft YaHei UI";
font-size: 14px;
position: relative;
}
.ulh >li {
float: left;
background-color: bisque;
border-collapse: collapse;
width: 200px;
box-sizing: border-box;
text-align: center;
height: 30px;
line-height: 28px;
border: 1px solid red;
}
.ulh >li>a {
cursor: pointer;
display: block;
}
.ulv {
padding: 0;
list-style: none;
font-family: "Microsoft YaHei UI";
font-size: 14px;
position: relative;
}
.ulv >li {
background-color: bisque;
border-collapse: collapse;
display: block;
width: 200px;
box-sizing: border-box;
height: 30px;
line-height: 28px;
border: 1px solid red;
}
.ulv >li a {
cursor: pointer;
display: block;
}
.selected {
background-color: #a1ffaa;
}
</style>
<script src="content/javascript/jquery-1.10.2.min.js"></script> <script>
$(document).ready(function () {
$("#maliang >li").show();
$("#maliang ul").hide(); $("#maliang li ").hover(function () {
var x = $(this).position();
var float1 = $(this).css("float");
if (float1.toUpperCase() == "LEFT") {
$(this).find(">ul").css({"position": "absolute", "left": x.left, 'top': x.top + 30});
}
else {
$(this).find(">ul").css({"position": "absolute", "left": x.left + 200, 'top': x.top});
}
$(this).find(">ul").slideDown(); $(this).addClass("selected");
}, function () {
$(this).find(">ul").slideUp();
$(this).removeClass("selected");
});
}) </script>
</head>
<body >
<ul class="ulh" id="maliang">
<li id="ol" style="position: relative">
<a href="http://www.baidu.com">新闻</a>
<ul class="ulv" >
<li><a href="">国内</a>
</li>
<li><a href="">国际</a></li>
<li><a href="">娱乐</a></li>
</ul>
</li>
<li id="keji"><a>科技</a>
<ul class="ulv" >
<li><a href="">互利网</a></li>
<li><a href="">软件</a></li>
<li><a href="">电子商务</a>
<ul class="ulv">
<li><a href="">1.1</a></li>
<li><a href="">1.2</a></li>
<li><a href="">1.3</a>
<ul class="ulv">
<li><a href="">1.1.1</a></li>
<li><a href="">1.2.1</a></li>
<li><a href="">1.3.1</a><ul class="ulv">
<li><a href="">1.1.1</a></li>
<li><a href="">1.2.1</a></li>
<li><a href="">1.3.1</a></li>
</ul></li>
</ul></li>
</ul>
</li>
</ul>
</li>
<li> <a>娱乐</a>
<ul class="ulv" >
<li><a href="">亚洲娱乐</a></li>
<li><a href="">欧美娱乐</a></li>
<li><a href="">全球娱乐资讯</a></li>
</ul>
</li> <li> <a href="">体育新闻</a></li> </ul>
</body>
</html>