jQuery-当有许多子代且没有“孙代”节点时,将对superfish下拉列表进行列

前端之家收集整理的这篇文章主要介绍了jQuery-当有许多子代且没有“孙代”节点时,将对superfish下拉列表进行列 前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我有一个使用jquery superfish的水平导航菜单.在我的一个下拉菜单中,其中没有更多的下拉菜单(即没有孙子节点),但是有几个子菜单(确切地说现在有45个子菜单,它可能会随着时间的推移而上升或下降).我正在尝试找到一种方法,使下拉列表中的列超过一定数量. 15个对我来说很好,因为有45个.因此,在不显示所有包含项的情况下,这是html列表-为了减少代码,我将使用15:

  1. <ul class="sf-menu sf-js-enabled sf-shadow" id="menu-1">
  2. <li class="current"> <a href="#a" class="sf-with-ul">menu item<span class="sf-sub-indicator"> »</span></a>
  3. <ul style="display: none; visibility: hidden;">
  4. <li> <a href="#aa">menu item</a> </li>
  5. <li> <a href="#ab">menu item</a> </li>
  6. <li> <a href="#ac">menu item</a> </li>
  7. <li> <a href="#ac">menu item</a> </li>
  8. <li> <a href="#ad">menu item</a> </li>
  9. <li> <a href="#aa">menu item</a> </li>
  10. <li> <a href="#ab">menu item</a> </li>
  11. <li> <a href="#ac">menu item</a> </li>
  12. <li> <a href="#ac">menu item</a> </li>
  13. <li> <a href="#ad">menu item</a> </li>
  14. <li> <a href="#aa">menu item</a> </li>
  15. <li> <a href="#ab">menu item</a> </li>
  16. <li> <a href="#ac">menu item</a> </li>
  17. <li> <a href="#ac">menu item</a> </li>
  18. <li> <a href="#ad">menu item</a> </li>
  19. </ul>
  20. </li>
  21. <li> <a href="#">menu item</a> </li>
  22. <li> <a href="#">menu item</a> </li>
  23. <li> <a href="#">menu item</a> </li>
  24. </ul>

因此,如果我希望列从5开始,那么我将有3列.我不知道如何才能做到这一点,而不破坏一切.我尝试使用一些CSS,没有解决方案.

最佳答案
如果列表中有45个项目,我建议您使用mega dropdown脚本而不是superfish.

更新:如果您希望多列下拉菜单显示效果很好,那么为什么不直接使用CSS菜单呢?检出multi-column menupro dropdownlist 1prodropdown list 2CSS3 multi-slide甚至是vertical flyout list.

更新#3:好的,因为我的OCD强迫我弄清楚这一点,所以今天我做了一段时间的LOL.它不是那么漂亮,但是可以.这是a demo.

您将需要重新格式化HTML:

  1. <ul class="sf-menu">
  2. <li>
  3. <a href="#a">menu item</a>
  4. <div class="listwrap">
  5. <div class="listblock">
  6. <ul>
  7. <li><a href="#">menu item</a></li>
  8. ...
  9. <li><a href="#">menu item</a></li>
  10. </ul>
  11. </div>
  12. <div class="listblock">
  13. <ul>
  14. <li><a href="#">menu item</a></li>
  15. ...
  16. <li><a href="#">menu item</a></li>
  17. </ul>
  18. </div>
  19. </div>
  20. </li>
  21. </ul>

将此CSS添加到标准中

  1. .sf-menu .listwrap {
  2. position: absolute;
  3. top: -999em;
  4. max-height: 500px; /* adjust height as desired */
  5. width: 45em; /* adjust width as more columns are added (~10em per column + shadow width */
  6. }
  7. .sf-menu .listblock ul {
  8. position: relative;
  9. display: block;
  10. float: left;
  11. width: 10em;
  12. }
  13. .sf-menu li:hover ul,.sf-menu li:hover .listwrap,/* added two definitions to existing one */
  14. .sf-menu li.sfHover .listwrap,.sf-menu li.sfHover ul {
  15. left: 0;
  16. top: 2.5em; /* match top ul list item height */
  17. z-index: 99;
  18. }
  19. .sf-menu li:hover .listblock ul,.sf-menu li.sfHover .listblock ul {
  20. top: 0;
  21. left: 0;
  22. }

猜你在找的CSS相关文章