А вот, например, такой момент:
есть подпункты 1, 2, 3, ..., 9, 10 как они будут раскиданы по 5 колонкам? какой из двух вариантов: 1) Колонка 1: (1, 2), Колонка 2: (3, 4), Колонка 3: (5, 6), Колонка 4: (7, 8), Колонка 5: (9, 10), 2) Колонка 1: (1, 5), Колонка 2: (2, 6), Колонка 3: (3, 7), Колонка 4: (4, 8), Колонка 5: (5, 10), |
Цитата:
|
<nav> <ul> <li><a href="[[!++site_url]]"><span>Пункт меню</span></a></li> <li> <a href="[[~70]]"><span>Пункт меню с выпадающим списком</span></a> <ul> <li><a href="[[~73]]"><span>Пункт подменю</span></a></li> <li><a href="[[~73]]"><span>Пункт подменю</span></a></li> <li><a href="[[~73]]"><span>Пункт подменю</span></a></li> <li><a href="[[~73]]"><span>Пункт подменю</span></a></li> <li><a href="[[~73]]"><span>Пункт подменю</span></a></li> <li><a href="[[~73]]"><span>Пункт подменю</span></a></li> <li><a href="[[~73]]"><span>Пункт подменю</span></a></li> <li><a href="[[~73]]"><span>Пункт подменю</span></a></li> <li><a href="[[~73]]"><span>Пункт подменю</span></a></li> <li><a href="[[~73]]"><span>Пункт подменю</span></a></li> <li><a href="[[~73]]"><span>Пункт подменю</span></a></li> <li><a href="[[~73]]"><span>Пункт подменю</span></a></li> <li><a href="[[~73]]"><span>Пункт подменю</span></a></li> <li><a href="[[~73]]"><span>Пункт подменю</span></a></li> <li><a href="[[~73]]"><span>Пункт подменю</span></a></li> <li><a href="[[~73]]"><span>Пункт подменю</span></a></li> <li><a href="[[~73]]"><span>Пункт подменю</span></a></li> <li><a href="[[~73]]"><span>Пункт подменю</span></a></li> <li><a href="[[~73]]"><span>Пункт подменю</span></a></li> <li><a href="[[~73]]"><span>Пункт подменю</span></a></li> <li><a href="[[~73]]"><span>Пункт подменю</span></a></li> </ul> </li> <li><a href="[[!++site_url]]"><span>Пункт меню</span></a></li> <li><a href="[[!++site_url]]"><span>Пункт меню</span></a></li> <li><a href="[[!++site_url]]"><span>Пункт меню</span></a></li> </ul> </nav> <nav> <ul> <li><a href="[[!++site_url]]"><span>Пункт меню</span></a></li> <li> <a href="[[~70]]"><span>Пункт меню с выпадающим списком</span></a> <ul> <li><a href="[[~73]]"><span>Пункт подменю</span></a></li> <li><a href="[[~73]]"><span>Пункт подменю</span></a></li> <li><a href="[[~73]]"><span>Пункт подменю</span></a></li> <li><a href="[[~73]]"><span>Пункт подменю</span></a></li> <li><a href="[[~73]]"><span>Пункт подменю</span></a></li> <li><a href="[[~73]]"><span>Пункт подменю</span></a></li> <li><a href="[[~73]]"><span>Пункт подменю</span></a></li> <li><a href="[[~73]]"><span>Пункт подменю</span></a></li> <li><a href="[[~73]]"><span>Пункт подменю</span></a></li> <li><a href="[[~73]]"><span>Пункт подменю</span></a></li> <li><a href="[[~73]]"><span>Пункт подменю</span></a></li> <li><a href="[[~73]]"><span>Пункт подменю</span></a></li> <li><a href="[[~73]]"><span>Пункт подменю</span></a></li> <li><a href="[[~73]]"><span>Пункт подменю</span></a></li> <li><a href="[[~73]]"><span>Пункт подменю</span></a></li> <li><a href="[[~73]]"><span>Пункт подменю</span></a></li> <li><a href="[[~73]]"><span>Пункт подменю</span></a></li> <li><a href="[[~73]]"><span>Пункт подменю</span></a></li> <li><a href="[[~73]]"><span>Пункт подменю</span></a></li> <li><a href="[[~73]]"><span>Пункт подменю</span></a></li> <li><a href="[[~73]]"><span>Пункт подменю</span></a></li> </ul> </li> <li><a href="[[!++site_url]]"><span>Пункт меню</span></a></li> <li><a href="[[!++site_url]]"><span>Пункт меню</span></a></li> <li><a href="[[!++site_url]]"><span>Пункт меню</span></a></li> </ul> </nav> <script> [].forEach.call(document.querySelectorAll('ul li ul'), function(elt){ var z = Math.ceil(elt.querySelectorAll('li').length / 5); [].forEach.call(elt.querySelectorAll('li:nth-child('+z+'n-'+(z-1)+')'),function(el,i){ el.insertAdjacentHTML('beforebegin', '<li><ul></ul></li>'); var wrap = elt.querySelectorAll('li ul')[i]; var x = z-1; while(x-- && el.nextElementSibling) wrap.appendChild(el.nextElementSibling); wrap.insertBefore(el, wrap.firstChild); }); }); </script> |
Да, вот так. Спасибо!
|
Извиняюсь что снова беспокою - моя вина, упустил еще один момент: в изначальном списке должен быть еще один элемент <li class="retractor">Закрыть</li>, т.е. начальная верстка такая:
<nav> <ul> <li><a href="[[!++site_url]]"><span>Пункт меню</span></a></li> <li> <a href="[[~70]]"><span>Пункт меню с выпадающим списком</span></a> <ul> <li class="retractor">Закрыть</li> <li><a href="[[~73]]"><span>Пункт подменю</span></a></li> <li><a href="[[~73]]"><span>Пункт подменю</span></a></li> <li><a href="[[~73]]"><span>Пункт подменю</span></a></li> <li><a href="[[~73]]"><span>Пункт подменю</span></a></li> <li><a href="[[~73]]"><span>Пункт подменю</span></a></li> <li><a href="[[~73]]"><span>Пункт подменю</span></a></li> <li><a href="[[~73]]"><span>Пункт подменю</span></a></li> <li><a href="[[~73]]"><span>Пункт подменю</span></a></li> <li><a href="[[~73]]"><span>Пункт подменю</span></a></li> <li><a href="[[~73]]"><span>Пункт подменю</span></a></li> <li><a href="[[~73]]"><span>Пункт подменю</span></a></li> <li><a href="[[~73]]"><span>Пункт подменю</span></a></li> <li><a href="[[~73]]"><span>Пункт подменю</span></a></li> <li><a href="[[~73]]"><span>Пункт подменю</span></a></li> <li><a href="[[~73]]"><span>Пункт подменю</span></a></li> <li><a href="[[~73]]"><span>Пункт подменю</span></a></li> <li><a href="[[~73]]"><span>Пункт подменю</span></a></li> <li><a href="[[~73]]"><span>Пункт подменю</span></a></li> <li><a href="[[~73]]"><span>Пункт подменю</span></a></li> <li><a href="[[~73]]"><span>Пункт подменю</span></a></li> <li><a href="[[~73]]"><span>Пункт подменю</span></a></li> </ul> </li> <li><a href="[[!++site_url]]"><span>Пункт меню</span></a></li> <li><a href="[[!++site_url]]"><span>Пункт меню</span></a></li> <li><a href="[[!++site_url]]"><span>Пункт меню</span></a></li> </ul> </nav> <script> [].forEach.call(document.querySelectorAll('ul li ul'), function(elt){ var z = Math.ceil(elt.querySelectorAll('li').length / 5); [].forEach.call(elt.querySelectorAll('li:nth-child('+z+'n-'+(z-1)+')'),function(el,i){ el.insertAdjacentHTML('beforebegin', '<li><ul></ul></li>'); var wrap = elt.querySelectorAll('li ul')[i]; var x = z-1; while(x-- && el.nextElementSibling) wrap.appendChild(el.nextElementSibling); wrap.insertBefore(el, wrap.firstChild); }); }); </script> так вот этот пункт "Закрыть" не должен учитываться при разбиении на блоки, т.е. должно получиться так: <nav> <ul> <li><a href="[[!++site_url]]"><span>Пункт меню</span></a></li> <li> <a href="[[~70]]"><span>Пункт меню</span></a> <ul> <li class="retractor">Закрыть</li> <li> <ul> <li><a href="[[~73]]"><span>Пункт подменю</span></a></li> <li><a href="[[~73]]"><span>Пункт подменю</span></a></li> <li><a href="[[~73]]"><span>Пункт подменю</span></a></li> <li><a href="[[~73]]"><span>Пункт подменю</span></a></li> </ul> </li> <li> <ul> <li><a href="[[~73]]"><span>Пункт подменю</span></a></li> <li><a href="[[~73]]"><span>Пункт подменю</span></a></li> <li><a href="[[~73]]"><span>Пункт подменю</span></a></li> <li><a href="[[~73]]"><span>Пункт подменю</span></a></li> </ul> </li> <li> <ul> <li><a href="[[~73]]"><span>Пункт подменю</span></a></li> <li><a href="[[~73]]"><span>Пункт подменю</span></a></li> <li><a href="[[~73]]"><span>Пункт подменю</span></a></li> <li><a href="[[~73]]"><span>Пункт подменю</span></a></li> </ul> </li> <li> <ul> <li><a href="[[~73]]"><span>Пункт подменю</span></a></li> <li><a href="[[~73]]"><span>Пункт подменю</span></a></li> <li><a href="[[~73]]"><span>Пункт подменю</span></a></li> <li><a href="[[~73]]"><span>Пункт подменю</span></a></li> </ul> </li> <li> <ul> <li><a href="[[~73]]"><span>Пункт подменю</span></a></li> <li><a href="[[~73]]"><span>Пункт подменю</span></a></li> <li><a href="[[~73]]"><span>Пункт подменю</span></a></li> <li><a href="[[~73]]"><span>Пункт подменю</span></a></li> </ul> </li> </ul> </li> <li><a href="[[!++site_url]]"><span>Пункт меню</span></a></li> <li><a href="[[!++site_url]]"><span>Пункт меню</span></a></li> <li><a href="[[!++site_url]]"><span>Пункт меню</span></a></li> </ul> </nav> думал, сам смогу разобраться, но что-то не получается |
а нет, вроде получилось
)))) |
Igorsrt,
Пункт подменю - сколько элементов 20 или 21 пост №15? начальная верстка такая: 21 должно получиться так: 20 |
разбить на пять колонок
Igorsrt,
<!DOCTYPE html> <html> <head> <title>Untitled</title> <meta charset="utf-8"> <style type="text/css"> .item-box { border: 2px solid green; } </style> <script> window.addEventListener("DOMContentLoaded", function() { function wrapEach(elements, wrapper, countToWrap, cls) { var container; [].forEach.call(elements, function(el, i) { i % countToWrap || (container = document.createElement(wrapper), cls && container.classList.add(cls), el.parentNode.replaceChild(container, el)); container.appendChild(el) }) } var ret = document.querySelectorAll(".retractor"), n = 5; [].forEach.call(ret, function(node) { var list = node.parentNode.querySelectorAll(".retractor ~ li"), num = Math.ceil(list.length / n); wrapEach(list, "ul", num); list = node.parentNode.querySelectorAll(".retractor ~ ul"); wrapEach(list, "li", 1, "item-box") }) }); </script> </head> <body> <nav> <ul> <li><a href="[[!++site_url]]"><span>Пункт меню</span></a></li> <li> <a href="[[~70]]"><span>Пункт меню с выпадающим списком</span></a> <ul> <li class="retractor">Закрыть</li> <li><a href="[[~73]]"><span>Пункт подменю</span></a></li> <li><a href="[[~73]]"><span>Пункт подменю</span></a></li> <li><a href="[[~73]]"><span>Пункт подменю</span></a></li> <li><a href="[[~73]]"><span>Пункт подменю</span></a></li> <li><a href="[[~73]]"><span>Пункт подменю</span></a></li> <li><a href="[[~73]]"><span>Пункт подменю</span></a></li> <li><a href="[[~73]]"><span>Пункт подменю</span></a></li> <li><a href="[[~73]]"><span>Пункт подменю</span></a></li> <li><a href="[[~73]]"><span>Пункт подменю</span></a></li> <li><a href="[[~73]]"><span>Пункт подменю</span></a></li> <li><a href="[[~73]]"><span>Пункт подменю</span></a></li> <li><a href="[[~73]]"><span>Пункт подменю</span></a></li> <li><a href="[[~73]]"><span>Пункт подменю</span></a></li> <li><a href="[[~73]]"><span>Пункт подменю</span></a></li> <li><a href="[[~73]]"><span>Пункт подменю</span></a></li> <li><a href="[[~73]]"><span>Пункт подменю</span></a></li> <li><a href="[[~73]]"><span>Пункт подменю</span></a></li> <li><a href="[[~73]]"><span>Пункт подменю</span></a></li> <li><a href="[[~73]]"><span>Пункт подменю</span></a></li> <li><a href="[[~73]]"><span>Пункт подменю</span></a></li> </ul> </li> <li><a href="[[!++site_url]]"><span>Пункт меню</span></a></li> <li><a href="[[!++site_url]]"><span>Пункт меню</span></a></li> <li><a href="[[!++site_url]]"><span>Пункт меню</span></a></li> </ul> </nav> </body> </html> |
Часовой пояс GMT +3, время: 10:15. |