L'exemple de cet article décrit l'implémentation jQuery d'un code de menu déroulant à plusieurs niveaux avec des effets animés. Partagez-le avec tout le monde pour votre référence. Les détails sont les suivants :
Il s'agit d'un menu déroulant à plusieurs niveaux basé sur jQuery, avec des effets d'animation. Tous les éléments sont imbriqués dans le format de boucle de ul li ul li ul li S'il n'y a pas de classification de niveau inférieur, utilisez li a to. mettre fin à l'imbrication. Cela n'est pas nécessaire dans le code. La raison de toggle() est de masquer tous les éléments après les menus subordonnés du menu lors de la réduction du menu.
La capture d'écran de l'effet en cours d'exécution est la suivante :
L'adresse de la démo en ligne est la suivante :
http://demo.jb51.net/js/2015/jquery-animate-style-down-show-menu-codes/
Le code spécifique est le suivant :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>jQuery多级下拉菜单</title> <script language="javascript" type="text/javascript" src="jquery1.3.2.js"></script> <style type="text/css"> ul,li{ list-style:none; font-size:12px; line-height:20px; width:80px; margin:0; padding-left:6px; } .child{ display:none; } .nav a{ display:block; color:#5c84c1; padding-left:22px; } </style> <script language="javascript" type="text/javascript"> //说明 所有的元素以ul li ul li ul li的循环格式嵌套 如果没有下级分类 就用li a结束嵌套 $(document).ready(function(){ //$(".nav ul li").children("ul").hide(); $(".nav").find("li").not(":has(ul)").children("a").css({textDecoration:"none",color:"#333",background:"none"}) .click(function(){ $(this).get(0).location.href="'"+$(this).attr("href")+"'"; }); $(".nav").find("li:has(ul)").children("a").css({background:"url(images/statu_close.gif) no-repeat left top;"}) .click(function(){ if($(this).next("ul").is(":hidden")){ $(this).next("ul").slideDown("slow"); if($(this).parent("li").siblings("li").children("ul").is(":visible")){ $(this).parent("li").siblings("li").find("ul").slideUp("1000"); $(this).parent("li").siblings("li:has(ul)").children("a").css({background:"url(images/statu_close.gif) no-repeat left top;"}) .end().find("li:has(ul)").children("a").css({background:"url(images/statu_close.gif) no-repeat left top;"});} $(this).css({background:"url(images/statu_open.gif) no-repeat left top;"}); return false; }else{ $(this).next("ul").slideUp("normal"); //不用toggle()的原因是为了在收缩菜单的时候同时也将该菜单的下级菜单以后的所有元素都隐藏 $(this).css({background:"url(images/statu_close.gif) no-repeat left top;"}); $(this).next("ul").children("li").find("ul").fadeOut("normal"); $(this).next("ul").find("li:has(ul)").children("a").css({background:"url(images/statu_close.gif) no-repeat left top;"}); return false; } }); }); </script> </head> <body> <div class="nav"> <ul> <li> <a href="#">一级菜单1</a> <ul class="child"> <li> <a href="#">二级菜单1</a> </li> <li> <a href="#">二级菜单1</a> <ul class="child"> <li> <a href="#">三级菜单1</a> </li> <li> <a href="#">三级菜单1</a> </li> </ul> </li> <li> <a href="#">二级菜单2</a> <ul class="child"> <li> <a href="#">三级菜单2</a> </li> <li> <a href="#">三级菜单2</a> <ul class="child"> <li> <a href="#">四级菜单</a> </li> <li> <a href="#">四级菜单1</a> </li> <li> <a href="#">四级菜单1</a> <ul class="child"> <li> <a href="#">五级菜单1</a> </li> <li> <a href="#">五级菜单1</a> </li> <li> <a href="#">五级菜单1</a> </li> </ul> </li> </ul> </li> </ul> </li> </ul> </li> <li> <a href="#">一级菜单2</a> <ul class="child"> <li> <a href="#">二级菜单1</a> </li> <li> <a href="#">二级菜单1</a> </li> </ul> </li> <li> <a href="#">一级菜单3</a> <ul class="child"> <li> <a href="#">二级菜单1</a> </li> <li> <a href="#">二级菜单1</a> </li> </ul> </li> <li> <a href="#">一级菜单4</a> </li> </ul> </div> </body> </html>
J'espère que cet article sera utile à la conception de la programmation jquery de chacun.