我的网站标题中有一个水平的CSS下拉菜单。菜单也在标题中浮动。我有一个问题,当你鼠标悬停菜单,你得到下拉菜单,如果下拉列表有子菜单有子菜单,菜单开始完全飞离屏幕右侧,你看不到它们和你得到一个水平滚动条。这个菜单是使用这样的列表项创建的(为了简洁,我删除了一些项目):
<nav id="main-menu" role="navigation">
<div class="menu-navigation-container">
<ul class="menu">
<li class="last expanded">
<a href="/content/clients" title="Clients">Clients</a>
<ul class="menu">
<li class="first expanded">
<a href="/content/information-technology-client" title="IT Client Services">Information Technology</a>
<ul class="menu">
<li class="first expanded">
<a href="/content/enterprise-applications-client" title="Client Enterprise Applications">Enterprise Applications</a>
<ul class="menu">
<li class="first leaf"><a href="/content/oracle-client" title="Oracle Client Services">Oracle</a></li>
<li class="leaf"><a href="/content/peoplesoft-client" title="PeopleSoft Client Services">PeopleSoft</a></li>
<li class="leaf"><a href="/content/sap-client" title="SAP Client Services">SAP</a></li>
<li class="leaf"><a href="/content/lawson-client" title="Lawson Cilent Services">Lawson</a></li>
<li class="leaf"><a href="/content/hyperion-client" title="Customer Relationship Management Client Services">Hyperion</a></li>
<li class="leaf"><a href="/content/jd-edwards-client" title="JD Edwards Client Services">JD Edwards</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="clear"></div>
</nav>
<!-- end main-menu -->
所以基本上当你进入“企业应用程序”时,菜单会从屏幕上飞出来,所以你甚至看不到它。我对菜单的HTML进行了有限的控制,因为它是由系统生成的。我无法创建其他ID或类。我只能使用我在这里展示的内容。但是,我可以将jQuery添加到自定义文件中以解决此问题。任何人都可以想到任何jQuery(或者只是简单的普通javaScript)可能会阻止列表项从屏幕上飞出来吗?此外,这是一个内部网应用程序,所以不幸的是我不能发送给你一个演示。哦,我确实可以访问外部CSS文件,所以我可以添加额外的CSS,我只是无法添加/编辑菜单本身的ID和类。
感谢
答案 0 :(得分:1)
我最终只是这样做,似乎有效。
$('#main-menu li').mouseenter(function() {
//make sure menu does not fly off the right of the screen
if ($(this).children('ul').offset().left + 200 > $(window).width()) {
$(this).children('ul').css('right', 180);
}
});
答案 1 :(得分:-1)
当您将鼠标悬停在下拉列表上时,可能会使用jQuery进行滚动?
|
V
<li class="leaf" onHover="$(this).scroll();"><a href="/content/jd-edwards-client" title="JD Edwards Client Services">JD Edwards</a></li>