Divi菜单模块与默认菜单效果上有些差距,需要用JS和CSS控制折叠。
第一步:添加JS,Divi>主题选项>集成选项卡>head
<script > jQuery(function($) { $(document).ready(function() { $("body ul.et_mobile_menu li.menu-item-has-children, body ul.et_mobile_menu li.page_item_has_children").append('<a href="#" class="mobile-toggle"></a>'); $('ul.et_mobile_menu li.menu-item-has-children .mobile-toggle, ul.et_mobile_menu li.page_item_has_children .mobile-toggle').click(function(event) { event.preventDefault(); $(this).parent('li').toggleClass('dt-open'); $(this).parent('li').find('ul.children').first().toggleClass('visible'); $(this).parent('li').find('ul.sub-menu').first().toggleClass('visible'); }); iconFINAL = 'P'; $('body ul.et_mobile_menu li.menu-item-has-children, body ul.et_mobile_menu li.page_item_has_children').attr('data-icon', iconFINAL); $('.mobile-toggle').on('mouseover', function() { $(this).parent().addClass('is-hover'); }).on('mouseout', function() { $(this).parent().removeClass('is-hover'); }) }); }); </script> <script> setTimeout(function(){ jQuery(document).ready(function(){ jQuery('li.menu-item-has-children').click(function(){ if(jQuery('li.menu-item-has-children').hasClass('dt-open')){ jQuery('li.menu-item-has-children').removeClass('dt-open'); jQuery('li.menu-item-has-children .sub-menu').removeClass('visible'); jQuery(this).addClass('dt-open'); jQuery(this).find('.sub-menu').addClass('visible'); } }); }); },500); </script>
第二步:添加CSS,Divi>主题选项>自定义 CSS 代码框中
/*change hamburger icon to x when mobile menu is open*/ #et_mobile_nav_menu .mobile_nav.opened .mobile_menu_bar::before, .et_pb_module.et_pb_menu .et_mobile_nav_menu .mobile_nav.opened .mobile_menu_bar::before { content: '\4d'; } /*adjust the new toggle element which is added via jQuery*/ ul.et_mobile_menu li.menu-item-has-children .mobile-toggle, ul.et_mobile_menu li.page_item_has_children .mobile-toggle, .et-db #et-boc .et-l ul.et_mobile_menu li.menu-item-has-children .mobile-toggle, .et-db #et-boc .et-l ul.et_mobile_menu li.page_item_has_children .mobile-toggle { width: 44px; height: 100%; padding: 0px !important; max-height: 44px; border: none; position: absolute; right: 0px; top: 0px; z-index: 999; background-color: transparent; } /*some code to keep everyting positioned properly*/ ul.et_mobile_menu>li.menu-item-has-children, ul.et_mobile_menu>li.page_item_has_children, ul.et_mobile_menu>li.menu-item-has-children .sub-menu li.menu-item-has-children, .et-db #et-boc .et-l ul.et_mobile_menu>li.menu-item-has-children, .et-db #et-boc .et-l ul.et_mobile_menu>li.page_item_has_children, .et-db #et-boc .et-l ul.et_mobile_menu>li.menu-item-has-children .sub-menu li.menu-item-has-children { position: relative; } /*remove default background color from menu items that have children*/ .et_mobile_menu .menu-item-has-children>a, .et-db #et-boc .et-l .et_mobile_menu .menu-item-has-children>a { background-color: transparent; } /*hide the submenu by default*/ ul.et_mobile_menu .menu-item-has-children .sub-menu, #main-header ul.et_mobile_menu .menu-item-has-children .sub-menu, .et-db #et-boc .et-l ul.et_mobile_menu .menu-item-has-children .sub-menu, .et-db #main-header ul.et_mobile_menu .menu-item-has-children .sub-menu { display: none !important; visibility: hidden !important; } /*show the submenu when toggled open*/ ul.et_mobile_menu .menu-item-has-children .sub-menu.visible, #main-header ul.et_mobile_menu .menu-item-has-children .sub-menu.visible, .et-db #et-boc .et-l ul.et_mobile_menu .menu-item-has-children .sub-menu.visible, .et-db #main-header ul.et_mobile_menu .menu-item-has-children .sub-menu.visible { display: block !important; visibility: visible !important; } /*adjust the toggle icon position and transparency*/ ul.et_mobile_menu li.menu-item-has-children .mobile-toggle, .et-db #et-boc .et-l ul.et_mobile_menu li.menu-item-has-children .mobile-toggle { text-align: center; opacity: 1; } /*submenu toggle icon when closed*/ ul.et_mobile_menu li.menu-item-has-children .mobile-toggle::after, .et-db #et-boc .et-l ul.et_mobile_menu li.menu-item-has-children .mobile-toggle::after { top: 10px; position: relative; font-family: "ETModules"; content: '\33'; color: #00d263; background: #f0f3f6; border-radius: 50%; padding: 3px; } /*submenu toggle icon when open*/ ul.et_mobile_menu li.menu-item-has-children.dt-open>.mobile-toggle::after, .et-db #et-boc .et-l ul.et_mobile_menu li.menu-item-has-children.dt-open>.mobile-toggle::after { content: '\32'; } /*add point on top of the menu submenu dropdown*/ .et_pb_menu_0.et_pb_menu .et_mobile_menu:after { position: absolute; right: 5%; margin-left: -20px; top: -14px; width: 0; height: 0; content: ''; border-left: 20px solid transparent; border-right: 20px solid transparent; border-bottom: 20px solid #ffffff; } /*adjust the position of the hamburger menu*/ .mobile_menu_bar { position: relative; display: block; bottom: 10px; line-height: 0; } /*force the background color and add a rounded border*/ .et_pb_menu_0.et_pb_menu .et_mobile_menu, .et_pb_menu_0.et_pb_menu .et_mobile_menu ul { background-color: #ffffff!important; border-radius: 10px; }
保存就可以了。