我正在为我的网站构建一种新型响应式菜单,我认为它需要一些 JavaScript。我对 JavaScript 不是很好,所以我希望有人可以通过提供指导、代码示例或可以帮助提供解决方案的网站链接来帮助我。
基本上,我有两个导航菜单,它们的内容几乎相同,除了第一个菜单在宽浏览器上查看时所有链接都可见。第一个菜单的包含 div 具有溢出:隐藏,这样当浏览器调整大小并且不再足够宽以容纳一行中的所有列表项时,一些列表项将在溢出时从视图中隐藏。第一个菜单也被设计为水平导航栏。
另一方面,第二个菜单是一个下拉菜单,将通过单击更多链接来触发。第二个菜单上的列表项设置为display:none
。
这就是我想要发生的事情。当第一个菜单上的列表项变为溢出并因此变为隐藏时,我希望第二个菜单上的相应菜单项变为display:block
. 换句话说,如果
<li id="desktop_tenth">tenth</li>
隐藏,因为它不再适合包含的 div,
<li id="mobile_tenth">tenth</li>
变为可见(单击更多链接时)。我可以使用 CSS3 上的媒体查询来做到这一点,但 JavaScript 解决方案会更受欢迎,所以我希望有人能帮助我。
<div style="overflow:hidden; width: 100%;">
<ul id="desktop">
<li id="desktop_first">first</li>
<li id="desktop_second">second</li>
...
<li id="desktop_tenth">tenth</li>
</ul>
</div>
<div class="dropdown_menu">
<a id="toggle" href="#">More</a>
<ul id="mobile">
<li id="mobile_first">first</li>
<li id="mobile_second">second</li>
...
<li id="mobile_tenth">tenth</li>
</ul>
</div>
另一种方法是从一个
<div class="dropdown_menu">
<a id="toggle" href="#">More</a>
<ul id="mobile">
<!--- no li inside this ul by default --->
</ul>
</div>
第一个菜单上隐藏(或包装)的任何 li 都将附加到
<ul id="mobile">
</ul>
作为列表项。