23.07.2018, 16:18
|
|
Профессор
|
|
Регистрация: 25.10.2016
Сообщений: 1,012
|
|
А вот, например, такой момент:
есть подпункты 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),
|
|
23.07.2018, 16:20
|
Профессор
|
|
Регистрация: 21.02.2016
Сообщений: 271
|
|
Сообщение от j0hnik
|
а должно быть пять неполных?
|
Да именно пять неполных (причем неполная последняя колонка) - это же меню у меня будет
|
|
23.07.2018, 16:21
|
|
Профессор
|
|
Регистрация: 01.12.2016
Сообщений: 3,650
|
|
<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>
|
|
23.07.2018, 16:52
|
Профессор
|
|
Регистрация: 21.02.2016
Сообщений: 271
|
|
Да, вот так. Спасибо!
|
|
23.07.2018, 20:11
|
Профессор
|
|
Регистрация: 21.02.2016
Сообщений: 271
|
|
Извиняюсь что снова беспокою - моя вина, упустил еще один момент: в изначальном списке должен быть еще один элемент <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>
думал, сам смогу разобраться, но что-то не получается
|
|
23.07.2018, 20:31
|
Профессор
|
|
Регистрация: 21.02.2016
Сообщений: 271
|
|
а нет, вроде получилось
))))
|
|
23.07.2018, 20:45
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,109
|
|
Igorsrt,
Пункт подменю - сколько элементов 20 или 21 пост №15?
начальная верстка такая: 21
должно получиться так: 20
Последний раз редактировалось рони, 23.07.2018 в 20:50.
|
|
23.07.2018, 21:00
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,109
|
|
разбить на пять колонок
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>
|
|
|
|