zorro76
@zorro76

Вопрос по корректности работы меню, как побороть косяк?

Делал на одном сайте меню, сделал все как бы ок, но заказчик узрел одну проблему с которой справится я просто не могу, все перепробовал и никак, хотя уверен что решение простое, возможно устал и не замечаю
Вот сам проект, на фидл выкладывать не имеет смысла, меню огромное.
Сразу в чем проблема: наводим на первый пункт Общестроительные материалы - Сухие смеси - переходим во второй блок Штукатурки - далее третий блок также Штукатурки (название пунктов рандомное) при переходе по этим подпунктам мы видим что второй блок меню увеличивается в высоту (из-за большего количества подпунктов, нежели в первом блоке, третий блок еще больше по высоте становиться нежели второй блок, и вот суть проблемы: когда пользователь находится в третьем блоке - Сухие смеси - Штукатурки - Штукатурки
4fe733635291407e9365103dceaf1f0d.png
у нас все отлично, но если он в третьем столбце меню перейдет на один пункт вниз, скажем Затирка для плитки, то третий и второй блоки сокращаются в высоте до уровня первого блока (скрывая часть подпунктов), что есть совершенно недопустимо со слов заказчика.
1d54b9d5285043ce8a6aa7a0338fb822.png

Я использую для регулировки высоты блоков меню вот такой скрипт:
$('.nav li').hover(
		function(){
			
			hchild = $(this).children('ul').outerHeight(true) + 0;
			hparent = $(this).parents('.drop-menu').outerHeight(true);
			if(hchild > hparent){
				$(this).parents('.drop-menu').css('height', hchild) ;
				if(!$(this).parent("ul").is(".drop-menu")){
					$(this).parent("ul").css('height', hchild - 0);
				}
			}else{
				if(hchild < hparent){
					$(this).children('ul').css('height', hparent -0);
					
					
				}
				
			}
			
		},
		function(){
			$(this).parents('.drop-menu').removeAttr("style");
			$(this).children('ul').removeAttr("style");
			$(this).parent("ul").removeAttr("style");
		});

Понимаю что ошибка именно в этом коде скорее всего, писал его не сам а взял со стороннего сайта vbaza.ru - помогите разобраться как побороть эту проблему. Спасибо.
  • Вопрос задан
  • 112 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы