文章内容
分享一款jQuery制作的手机导航效果带二级菜单?代码如下
html代码
<div class="index_header"> <div class="sj_header"> <div class="menu"> <a class="menubtn"> <img src="images/menu.png"></a></div> </div> <!--header--> <div id="hamburgermenu"> <div id="firstpane" class="menu_list"> <div class="menu_head"> <a href="#">导航一</a></div> <div class="menu_head"> 导航二</div> <div class="menu_body"> <a href="#">▪ 分类一</a> <a href="#">▪ 分类二</a> <a href="#">▪ 分类三</a> </div> <div class="menu_head"> 导航三</div> <div class="menu_body"> <a href="#">▪ 分类一</a> <a href="#">▪ 分类二</a> <a href="#">▪ 分类三</a> </div> <div class="menu_head"> <a href="#">导航四</a></div> <div class="menu_head"> <a href="#">导航五</a></div> </div> </div> <div class="overlay"> </div> </div>
js代码
<script> $(function () { var menuwidth = 180; var menuspeed = 300; var $bdy = $('body'); var $container = $('#pgcontainer'); var $burger = $('#hamburgermenu'); var negwidth = "-" + menuwidth + "px"; var poswidth = menuwidth + "px"; $('.menubtn').on('click', function (e) { if ($bdy.hasClass('openmenu')) { jsAnimateMenu('close'); } else { jsAnimateMenu('open'); $('#hamburgermenu').css('overflow-y', 'scroll') } }); $('.overlay').on('click', function (e) { if ($bdy.hasClass('openmenu')) { jsAnimateMenu('close'); } }); function jsAnimateMenu(tog) { if (tog == 'open') { $bdy.addClass('openmenu'); $container.animate({ marginRight: negwidth, marginLeft: poswidth }, menuspeed); $burger.animate({ width: poswidth }, menuspeed); $('.overlay').animate({ left: poswidth }, menuspeed); } if (tog == 'close') { $bdy.removeClass('openmenu'); $container.animate({ marginRight: "0", marginLeft: "0" }, menuspeed); $burger.animate({ width: "0" }, menuspeed); $('.overlay').animate({ left: "0" }, menuspeed); } } }); $(document).ready(function () { $("#firstpane .menu_body:eq(0)").hide(); $("#firstpane div.menu_head").click(function () { $(this).addClass("current").next("div.menu_body").slideToggle(300).siblings("div.menu_body").slideUp("slow"); $(this).siblings().removeClass("current"); }); }); </script>
在线演示:演示