ホームページ >ウェブフロントエンド >jsチュートリアル >jquery_jquery に基づいた単純なアコーディオン効果の実装
アコーディオン エフェクトはプロジェクトで頻繁に使用されるエフェクトです。この記事の例 J では、単純なアコーディオン特殊効果コードの jquery 実装について説明します。皆さんの参考に共有してください。詳細は以下の通りです。
実行中のエフェクトのスクリーンショットは次のとおりです:
具体的なコードは次のとおりです:
CSS スタイル
/* CSS Document */ body { margin: 0 auto; padding: 0 auto; font-size: 9pt; font-family: 微软雅黑, 宋体, Arial, Helvetica, Verdana, sans-serif; } .accordion { padding-left: 0px; } .accordion li { border-top: 1px solid #000; list-style-type: none; } .titlemenu { width: 100%; height: 30px; background-color: #F2F2F2; padding: 5px 0px; text-align: left; cursor: pointer; } .titlemenu img { position: relative; left: 20px; top: 5px; } .titlemenu span { display: inline-block; position: relative; left: 40px; } .submenu { text-align: left; width: 100%; padding-left: 0px; } .submenu li { list-style-type: none; width: 100%; } .submenu li img { position: relative; left: 20px; top: 5px; } .submenu li a { position: relative; left: 40px; top: 5px; text-decoration: none; } .submenu li span { display: inline-block; height: 30px; padding: 5px 0px; } .hover { background-color: #4A5B79; }
カスタム js
(function ($) { piano = function () { _menu ='[{"title":"一级目录","img":"images/cog.png","submenu":[{"title":"二级目录","img":"images/monitor_window_3d.png"},{"title":"二级目录","img":"images/monitor_window_3d.png"},{"title":"二级目录","img":"images/monitor_window_3d.png"}]},{"title":"一级目录","img":"images/cog.png","submenu":[{"title":"二级目录","img":"images/monitor_window_3d.png"},{"title":"二级目录","img":"images/monitor_window_3d.png"},{"id":"4","title":"二级目录","img":"images/monitor_window_3d.png"}]}]'; return ep = { init: function (obj) { _menu = eval('(' + _menu + ')'); var li =""; $.each(_menu, function (index, element) { li += '<li><div class="titlemenu"><img src=' + element.img + ' width="16" height="16" alt=""/><span>' + element.title + '</span></div>'; if(element.submenu!=null) { li+='<ul class="submenu">'; $.each(element.submenu, function (ind, ele) { li += '<li><img src=' + ele.img + ' width="16" height="16" alt=""/><span><a href="#">' + ele.title + '</a></span></li>'; }); li+='</ul>'; } li+='</li>'; }); obj.append(li); } } } $.fn.accordion = function (options) { var pia = new piano(); pia.init($(this)); return this.each(function () { var accs = $(this).children('li'); accs.each(reset); accs.click(onClick); var menu_li = $(".submenu").children("li"); menu_li.each(function (index, element) { $(this).mousemove(function (e) { $(this).siblings().removeClass("hover"); $(this).find("a").css("color", "#fff"); $(this).siblings().find("a").css("color", "#000"); $(this).addClass("hover"); }); }); }); } function onClick() { $(this).siblings('li').find("ul").each(hide); $(this).find("ul").slideDown('normal'); return false; } function hide() { $(this).slideUp('normal'); } function reset() { $(this).find("ul").hide(); } })(jQuery);
html 呼び出しメソッド
<!doctype html> <html> <head> <meta charset="utf-8"> <title>无标题文档</title> <script src="jquery-1.8.0.min.js"></script> <link rel="stylesheet" type="text/css" href="style.css"> <script src="accordion.js"></script> <script type="text/javascript"> $(function(){ $("#accordion").accordion(); }); </script> </head> <body> <ul id="accordion" class="accordion" style="width:200px;height:500px;"> </ul> </body> </html>
この記事が jquery プログラミングを学習し、アコーディオン特殊効果を習得するのに役立つことを願っています。記事の下にリンクされている関連記事を読んで学んでください。