Maison > Article > interface Web > Jquery implémente menu_jquery vertical et horizontal
Le premier menu est implémenté en cliquant sur un élément de menu pour afficher l'élément de sous-menu correspondant, et le triangle se transforme en triangle descendant. Le menu suivant déplace la souris vers l'élément de menu pour afficher l'élément de sous-menu correspondant, et le sous-menu disparaît lorsque la souris s'éloigne.
La partie code est présentée ci-dessous :
code html :
Ajouter un titre et une référence à la section du code principal :
<span style="font-family:KaiTi_GB2312;font-size:18px;"><head> <title>JQuery实战-菜单效果</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <link type="text/css" rel="stylesheet" href="css/menu.css" /> <script type="text/javascript" src="js/jquery.js"></script> <script type="text/javascript" src="js/menu.js"></script> </head></span>
Le contenu de l'élément de menu est modifié dans la partie corps, qui est représentée par ul et li imbriqués. La couche la plus externe du menu est ul, et chaque menu principal d'une couche est placé dans un li. S'il existe un sous-menu, créez un nouveau ul dans le li du menu principal, puis imbriquez-le afin de créer un menu multicouche.
<span style="font-family:KaiTi_GB2312;font-size:18px;"><body> <ul> <li class="main"> <a href="#">菜单项1</a> <ul style="display:none;"> <li> <a href="#">子菜单项11</a> </li> <li> <a href="#">子菜单项12</a> </li> </ul> </li> <li class="main"> <a href="#">菜单项2</a> <ul> <li> <a href="#">子菜单项21</a> </li> <li> <a href="#">子菜单项22</a> </li> </ul> </li> <li class="main"> <a href="#">菜单项3</a> <ul> <li> <a href="#">子菜单项31</a> </li> <li> <a href="#">子菜单项32</a> </li> </ul> </li> </ul> <br/> <ul> <li class="hmain"> <a href="#">菜单项1</a> <ul> <li> <a href="#">子菜单项11</a> </li> <li> <a href="#">子菜单项12</a> </li> </ul> </li> <li class="hmain"> <a href="#">菜单项2</a> <ul> <li> <a href="#">子菜单项21</a> </li> <li> <a href="#">子菜单项22</a> </li> </ul> </li> <li class="hmain"> <a href="#">菜单项3</a> <ul> <li> <a href="#">子菜单项31</a> </li> <li> <a href="#">子菜单项32</a> </li> </ul> </li> </ul> </body></span>
partie du code CSS
1. Par défaut, les éléments ul et li dans le navigateur ont des identifiants de points avant le texte, et l'élément li sera en retrait
2. La valeur de l'attribut de style liste est aucune, ce qui peut effacer les petits points devant ul et li.
3. Effacez la valeur du retrait, le remplissage et la marge sont tous deux égaux à 0. IE6 et IE7 doivent définir la marge sur 0 avant d'effacer la valeur du retrait.
<span style="font-family:KaiTi_GB2312;font-size:18px;">ul,li{ list-style:none;/* //清除ul和li上默认的小圆点 */ } ul{ /* 清除子菜单的缩进值 */ padding:0; margin:0; } .main,.hmain{ background-image:url(../images/title.gif);/*指定背景图*/ background-repeat:repeat-x; width:120px; } li{ background-color:#EEEEEE; } a { /*取消所有的下划线*/ text-decoration:none; padding-left:20px; display:block; display:inline-block;/* 解决ie6不兼容的问题 */ width:100px; padding-top:3px; padding-bottom:3px; } .main a,.hmain a { color:white;/*主菜单标签颜色为白色*/ background-image:url(../images/collapsed.gif); background-repeat:no-repeat; background-position:3px center; /* 图片位置在中间 */ } .main li a ,.hmain li a{ /* 子菜单项 */ color:black; background-image:none;/* 不使用图片 */ padding-left:18px; } .main ul,.hmain ul{ /* 子菜单隐藏 */ display:none; } .hmain{ float:left;/*浮动显示*/ margin:1px; }</span>
code menu.js :
1.main a sélectionne tous les nœuds à l'intérieur de l'élément en utilisant la classe .main
2.main>a sélectionne le nœud a dans le nœud enfant .main
<span style="font-family:KaiTi_GB2312;font-size:18px;">$(document).ready(function(){ //页面的Dom已经装载完成时,执行的代码 $(".main > a,.hmain a").click(function(){ //找到主菜单项对应的子菜单项 var ulNode = $(this).next("ul"); // //根据情况收缩菜单 // if(ulNode=$.css("display") == "none"){ // ulNode.css("display","block"); // }else{ // ulNode.css("display","none"); // } // ulNode.show("normal");//设置展开的速度,可以是nomal,slow,fast // ulNode.hide(); // ulNode.toggle();//toggle设置展开或者收缩 //卷帘效果,向上或者向下 // ulNode.slideDown(); // ulNode.slideUp; ulNode.slideToggle(); }); //麻烦的方法 // $(".hmain > a").hover(function(){ // $(this).next("ul").slideDown(); // }.Function(){ // var ulNode=$(this).next("ul"); // var timeoutId =setTimeout(function(){ // }) // ulNode.slideUp(); // },300); // ulNode.hover(function(){ // clearTimeout(timeoutId); // }.function(){ // $(this).slideUp(); // }); /********实现鼠标移动到指定主菜单后子菜单自动显示*****/ $(".hmain").hover(function(){ $(this).children("ul").slideDown(); },function(){ $(this).children("ul").slideUp(); }); }); /* *修改主菜单的指示图标随着子菜单的变化而变化 * */ function changeIcon(mainNode) { if (mainNode) { if (mainNode.css("background-image").indexOf("collapsed.gif") >= 0) { mainNode.css("background-image","url('images/expanded.gif')"); } else { mainNode.css("background-image","url('images/collapsed.gif')"); } } } </span>
Ce qui précède représente l'intégralité du contenu de cet article, j'espère qu'il pourra vous aider à mieux obtenir l'effet de la création de menus.