1. 程式人生 > >web前端,html+css+jquery實現水平選單

web前端,html+css+jquery實現水平選單

用到的知識點:

1 列表,常用屬性

2 a元素,常用屬性

3 顯示隱藏

4 jquery點選事件,劃過事件

html:

<!DOCTYPE html>
<!--水平選單-->
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title>選單</title>
    <!--引入所有的檔案-->
<link href="menu02.css" rel="stylesheet" type="text/css">
    <
script type="text/javascript" src="jquery-2.1.4.min.js"></script> <script type="text/javascript" src="menu02.js"></script> </head> <body> <ul> <li class="hmain"> <a class="mya" href="#">選單1</a> <ul> <li><
a href="#">子選單1</a></li> <li><a href="#">子選單2</a></li> </ul> </li> <li class="hmain"> <a class="mya" href="#">選單2</a> <ul> <li><a href="#">子選單1</a></li> <
li><a href="#">子選單2</a></li> </ul> </li> <li class="hmain"> <a class="mya" href="#">選單3</a> <ul> <li><a href="#">子選單1</a></li> <li><a href="#">子選單2</a></li> </ul> </li> <li class="hmain"> <a class="mya" href="#">選單4</a> <ul> <li><a href="#">子選單1</a></li> <li><a href="#">子選單2</a></li> </ul> </li> </ul> </body> </html>
css:
ul,li{
    /*去掉選單前面的點*/
list-style: none;
}
ul{
    /*去掉縮排*/
padding: 0;
    margin: 0;
}
.mya{
    background-image: url("images/bg.jpg");
    /*規定只能在x軸方向重複,否則會給子選單也加上背景*/
background-repeat: repeat-x;
}
a{
    /*去掉a的下劃線*/
text-decoration: none;
    /*居左20*/
padding-left: 20px;
    /*設定為塊級元素*/
display: block;
    /*寬度80*/
width: 80px;
    padding-top: 3px;
    padding-bottom: 3px;
}
.hmain a{
    color: darkgreen;
    /*加上向右的箭頭圖示*/
    /*圖示太大覆蓋了背景*/
background-image: url("images/right.jpg" );
    /*不允許重複*/
background-repeat: no-repeat;

}
.hmain li a{
    color: #000000;
    /*去掉子選單的向右圖示*/
background-image: none;
    /*居左3px,垂直居中*/
background-position: 3px center;
}
.hmain ul{
    /*隱藏子選單*/
display: none;
}
.hmain{
    float: left;
}
jquery:
/**
 * Created by hao on 2015/9/27.
 */
$(document).ready(function(){
    //.main下面的直接子元素a
    //滑鼠劃過時的效果
$(".hmain").hover(function(){
        //自動判斷是否展開
$(this).children("ul").slideToggle();
        changeIcon($(this).children("a"));
    });
});
//    改變右邊小圖示
function changeIcon(mainNode){
    if(mainNode.css("background-image").indexOf("right.jpg")>=0){
        mainNode.css("background-image","url('images/bottom.jpg')");
    }else{
        mainNode.css("background-image","url('images/right.jpg')");
    }
}
參考視訊: