Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 23.07.2018, 16:18
Аватар для Alexandroppolus
Профессор
Отправить личное сообщение для Alexandroppolus Посмотреть профиль Найти все сообщения от Alexandroppolus
 
Регистрация: 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),
Ответить с цитированием
  #12 (permalink)  
Старый 23.07.2018, 16:20
Профессор
Отправить личное сообщение для Igorsrt Посмотреть профиль Найти все сообщения от Igorsrt
 
Регистрация: 21.02.2016
Сообщений: 271

Сообщение от j0hnik Посмотреть сообщение
а должно быть пять неполных?
Да именно пять неполных (причем неполная последняя колонка) - это же меню у меня будет
Ответить с цитированием
  #13 (permalink)  
Старый 23.07.2018, 16:21
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 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>
Ответить с цитированием
  #14 (permalink)  
Старый 23.07.2018, 16:52
Профессор
Отправить личное сообщение для Igorsrt Посмотреть профиль Найти все сообщения от Igorsrt
 
Регистрация: 21.02.2016
Сообщений: 271

Да, вот так. Спасибо!
Ответить с цитированием
  #15 (permalink)  
Старый 23.07.2018, 20:11
Профессор
Отправить личное сообщение для Igorsrt Посмотреть профиль Найти все сообщения от Igorsrt
 
Регистрация: 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>


думал, сам смогу разобраться, но что-то не получается
Ответить с цитированием
  #16 (permalink)  
Старый 23.07.2018, 20:31
Профессор
Отправить личное сообщение для Igorsrt Посмотреть профиль Найти все сообщения от Igorsrt
 
Регистрация: 21.02.2016
Сообщений: 271

а нет, вроде получилось
))))
Ответить с цитированием
  #17 (permalink)  
Старый 23.07.2018, 20:45
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

Igorsrt,
Пункт подменю - сколько элементов 20 или 21 пост №15?
начальная верстка такая: 21
должно получиться так: 20

Последний раз редактировалось рони, 23.07.2018 в 20:50.
Ответить с цитированием
  #18 (permalink)  
Старый 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>
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выпадающее меню (костыли) Sk1LL Общие вопросы Javascript 4 06.02.2016 12:47
Замена стилей класса Павел Турченко Элементы интерфейса 9 30.10.2015 15:24
Бесконечноуровневое меню на CSS ruslan_mart Ваши сайты и скрипты 5 12.01.2015 20:59
Находится ли мышка над дивом ? (выпадающее меню) advsm jQuery 31 24.09.2014 17:50
Выпадающее меню в несколько колонок spo (X)HTML/CSS 1 25.06.2013 12:30