2 回答

TA贡献1811条经验 获得超5个赞
使用 JavaScript 很有可能。我是用 jQuery 做的。dropdown如果用户单击dropdown容器外部,我将关闭。
这是JS代码。
$(function(){
$('.dropdown .dropdown-toggle').on('click', function(e){
e.preventDefault;
e.stopPropagation;
$(this).parents('.dropdown').toggleClass('show');
});
// Remove dropdown if click outside of dropdown
const $menu = $('.dropdown');
$(document).mouseup(e => {
if (!$menu.is(e.target) // if the target of the click isn't the container...
&& $menu.has(e.target).length === 0) // ... nor a descendant of the container
{
$menu.removeClass('show');
}
});
});
CSS 更改。
/* Before */
.navigationWrap ul li.dropdown:hover ul.subNav {
display: block;
}
/* After */
.navigationWrap ul li.dropdown.show ul.subNav {
display: block;
}
这是HTML。
<div class="navigationWrap">
<ul>
<li class="dropdown">
<a class="dropdown-toggle" href="javascript:void(0);">☰ See Options</a>
<ul class="subNav">
<li><a href="#">Option 1</a></li>
<li><a href="#">Option 2</a></li>
<li><a href="#">Option 3</a></li>
<li><a href="#">Option 4</a></li>
<li><a href="#">Option 5</a></li>
<li>
<p></p>
</li>
<li><a href="#">Option 6</a></li>
<li><a href="#">Option 7</a></li>
</ul>
</li>
</ul>
</div>

TA贡献1803条经验 获得超6个赞
你可以这样做
我们切换类(添加/删除)并通过 css 更改显示值
document.querySelector('.dropdown').onclick = () => {
document.querySelector('.dropdown').classList.toggle('show');
};
如果类.show存在那么display: block
.navigationWrap ul li.show ul.subNav{
display: block;
}
添加回答
举报