核心提示:下拉导航分别通过纯css和纯js实现教程案例图片展示Tips:纯css实现的兼容性比较好,纯js的代码兼容性不太友好,需要引用的朋友要自行优化。(一)纯css代码1.html代码!DOCTYPE ht...
下拉导航分别通过纯css和纯js实现教程
案例图片展示

Tips:纯css实现的兼容性比较好,纯js的代码兼容性不太友好,需要引用的朋友要自行优化。
(一)纯css代码
1.html代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
<link rel="stylesheet" href="style/reset.css">
<link rel="stylesheet" href="style/downlist.css">
</head>
<body>
<p class="downList li-f">
<ul>
<li>
<span>主页</span>
</li>
<li>
<span>菜单一</span>
<ul>
<li ><span>子菜单A</span></li>
<li ><span>子菜单B</span></li>
<li ><span>子菜单C</span></li>
<li ><span>子菜单D</span></li>
<li ><span>子菜单E</span></li>
<li><span>子菜单F</span></li>
<li><span>子菜单G</span></li>
<li><span>子菜单H</span></li>
</ul>
</li>
<li>
<span>菜单二</span>
<ul>
<li><span>子菜单A</span></li>
<li><span>子菜单B</span></li>
<li><span>子菜单C</span></li>
<li><span>子菜单D</span></li>
<li><span>子菜单E</span></li>
<li><span>子菜单F</span></li>
<li><span>子菜单G</span></li>
<li><span>子菜单H</span></li>
</ul>
</li>
<li>
<span>菜单三</span>
<ul>
<li><span>子菜单A</span></li>
<li><span>子菜单B</span></li>
<li><span>子菜单C</span></li>
<li><span>子菜单D</span></li>
<li><span>子菜单E</span></li>
<li><span>子菜单F</span></li>
<li><span>子菜单G</span></li>
<li><span>子菜单H</span></li>
</ul>
</li>
<li>
<span>菜单四</span>
</li>
<li>
<span>返回教程</span>
</li>
</ul>
</p>
</body>
</html>
2.css代码
.downList{
width: 610px;
margin: 100px auto;
}
.downList li{
width: 100px;
height: 50px;
float: left;
line-height: 50px;
text-align: center;
background-color: #292929;
color: #999395;
transition: .8s;
}
.downList li:hover{
color: red;
border-left: 2px solid red;
background-color: black;
}
.downList li ul li{
border:1px solid black;
opacity: 0;
transform: rotateY(180deg);
}
.downList li ul li:hover{
color: white;
border-left: black;
}
.downList li:hover ul li{
opacity: 1;
transform: rotateY(0deg);
}
.downList li:hover ul li:nth-child(1){
transition-delay: 100ms;
}
.downList li:hover ul li:nth-child(2){
transition-delay: 200ms;
}
.downList li:hover ul li:nth-child(3){
transition-delay: 300ms;
}
.downList li:hover ul li:nth-child(4){
transition-delay: 400ms;
}
.downList li:hover ul li:nth-child(5){
transition-delay: 500ms;
}
.downList li:hover ul li:nth-child(6){
transition-delay: 600ms;
}
.downList li:hover ul li:nth-child(7){
transition-delay: 700ms;
}
.downList li:hover ul li:nth-child(8){
transition-delay: 800ms;
}
/*@keyframes myList {*/
/*0%{ opacity: 0; transform: rotateY(90deg) rotateX(20deg);}*/
/*100%{ opacity: 1;transform: rotateY(0deg) rotateX(0deg);}*/
/*}*/
.downList li ul li:nth-child(8){
transition-delay: 100ms;
}
.downList li ul li:nth-child(7){
transition-delay: 200ms;
}
.downList li ul li:nth-child(6){
transition-delay: 300ms;
}
.downList li ul li:nth-child(5){
transition-delay: 400ms;
}
.downList li ul li:nth-child(4){
transition-delay: 500ms;
}
.downList li ul li:nth-child(3){
transition-delay: 600ms;
}
.downList li ul li:nth-child(2){
transition-delay: 700ms;
}
.downList li ul li:nth-child(1){
transition-delay: 800ms;
}
(二)纯js实现
1.html代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
<link rel="stylesheet" href="style/reset.css">
<link rel="stylesheet" href="style/downlist1.css">
<script src="http://cdn.static.runoob.com/libs/jquery/1.10.2/jquery.min.js"></script>
</head>
<body>
<p class="downList" id="downList">
<ul>
<li>
<span>主页</span>
</li>
<li>
<span>菜单一</span>
<ul>
<li><span>子菜单A</span></li>
<li><span>子菜单B</span></li>
<li><span>子菜单C</span></li>
<li><span>子菜单D</span></li>
<li><span>子菜单E</span></li>
<li><span>子菜单F</span></li>
<li><span>子菜单G</span></li>
<li><span>子菜单H</span></li>
</ul>
</li>
<li>
<span>菜单二</span>
<ul>
<li><span>子菜单A</span></li>
<li><span>子菜单B</span></li>
<li><span>子菜单C</span></li>
<li><span>子菜单D</span></li>
<li><span>子菜单E</span></li>
<li><span>子菜单F</span></li>
<li><span>子菜单G</span></li>
<li><span>子菜单H</span></li>
</ul>
</li>
<li>
<span>菜单三</span>
<ul>
<li><span>子菜单A</span></li>
<li><span>子菜单B</span></li>
<li><span>子菜单C</span></li>
<li><span>子菜单D</span></li>
<li><span>子菜单E</span></li>
<li><span>子菜单F</span></li>
<li><span>子菜单G</span></li>
<li><span>子菜单H</span></li>
</ul>
</li>
<li>
<span>菜单四</span>
</li>
<li>
<span>返回教程</span>
</li>
</ul>
</p>
<script>
var dBCn = document.getElementById('downList');
var lBtn = dBCn.getElementsByTagName('li');
for(var i=0;i<lBtn.length;i++){
lBtn[i].index=i;
lBtn[i].onmousemove=move;
lBtn[i].onmouseout=out;
}
function move(){
for(var i=0;i<lBtn.length;i++){
lBtn[i].className="";
}
this.className="li-hover";
var lis=this.getElementsByTagName('li');
for(i=0;i<lis.length;i++){
lis[i].className="move";
lis[i].style.animationDelay=i*100+"ms";
}
}
function out(){
for(var i=0;i<lBtn.length;i++){
lBtn[i].className="";
}
this.className="li-hover";
var lis=this.getElementsByTagName('li');
for(i=0;i<lis.length;i++){
lis[i].className="out";
lis[i].style.animationDelay=(lis.length-i)*100+"ms";
}
}
</script>
</body>
</html>
css样式
.downList{
width: 610px;
margin: 100px auto;
}
.downList li{
width: 100px;
height: 50px;
float: left;
line-height: 50px;
text-align: center;
background-color: #292929;
color: #999395;
transition: .8s;
}
.li-hover{
color: red!important;
border-left: 2px solid red;
background-color: black!important;
}
.downList li ul li{
border:1px solid black;
transition-duration: 3s;
opacity: 0;
}
.out{
animation: myListA .8s both;
}
.move{
opacity: 1;
animation: myList .8s both;
}
.move-hover{
color: white;
border-left: black;
}
@keyframes myListA {
0%{opacity: 1;transform: rotateY(0deg) ;}
100%{opacity: 0; transform: rotateY(90deg) ;}
}
@keyframes myList {
0%{opacity: 0; transform: rotateY(90deg);}
100%{opacity: 1; transform: rotateY(0deg);}
}


