Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 09.11.2011, 07:13
Новичок на форуме
Отправить личное сообщение для Aleksson Посмотреть профиль Найти все сообщения от Aleksson
 
Регистрация: 09.11.2011
Сообщений: 3

Горизонтальное меню с вертикальными подпунктами
Доброго времени суток. Уважаемые знатоки, подскажите, пожалуйста, такое:
мне нужно сделать горизонтальное выпадающее меню с 3 уровнями из обычного ul li списка, вида

пункт1 ______ пункт2 ______ пункт3 ______ пункт4
_подпункт1
_подпункт2
__подпункт2.1
__подпункт2.2
_подпункт3
_подпунктN

Подменю должны выпадать при наведении курсора. Так и происходит при наведении на пункт в гориз. ряде, но при наведении на подкатегорию ее дочерние элементы залазят за следующий элемент.
Как сделать чтобы при наведении курсора на подпункт, появлялись дочерние пункты и то что под ними сдвигалось дальше вниз?

Вот мой код сейчас:

<script type="text/javascript">
$(document).ready(function(){
	$("ul.sf-menu li>ul").hide();
	$("a span").mouseover(function(){
		$(this).parent().next().toggle(200);
return false;
	});
        $("ul.sf-menu li ul").mouseleave(function(){
		 $("ul.sf-menu li ul").hide();
return false;
	});
});
</script>



вот список :

<ul>
  <li><a></a>
      <ul><li><a></a>
	          <ul>
			  <li><a></a></li>
              <li><a></a></li>
              <li><a></a></li>
			  </ul>
		  </li>
      </ul>
  </li>
  <li><a></a>
      <ul><li><a></a>
	          <ul>
			  <li><a></a></li>
              <li><a></a></li>
              <li><a></a></li>
			  </ul>
		  </li>
      </ul>
  </li>
</ul>

Подробнее на рисунке:
sample.jpg

Будьте добры, помогите.
Ответить с цитированием
  #2 (permalink)  
Старый 09.11.2011, 08:03
Аватар для trikadin
Модератор
Отправить личное сообщение для trikadin Посмотреть профиль Найти все сообщения от trikadin
 
Регистрация: 27.04.2010
Сообщений: 3,417

<style>
ol li {
 float: left;
 width: 100px;
}
ul li {
 float: none;
 width: auto;
}
li ul {
 display: none;
 margin-left: 0px;
 padding-left: 5px;
}
li:hover ul {
 display: block;
}
</style>
<ol>
<li>bla-bla
 <ul>
  <li> bla-bla, </li>
  <li> bla-bla-bla, </li>
  <li> mr. Freeman </li>
 </ul>
</li>
<li>bla-bla
 <ul>
  <li> bla-bla, </li>
  <li> bla-bla-bla, </li>
  <li> mr. Freeman </li>
 </ul>
</li>
<li>bla-bla
 <ul>
  <li> bla-bla, </li>
  <li> bla-bla-bla, </li>
  <li> mr. Freeman </li>
 </ul>
</li>
</ol>


Раскраску сами добавите. Шестой осёл не поймёт, правда, но там дело поправляется маленьким скриптом.
__________________
Читайте:
Ты любопытный) Всё-таки, ничему в этом мире не помешает хорошая доля юмора)
Как спросить, чтобы вам ответили
Часто Задаваемые Вопросы (FAQ)
Ответить с цитированием
  #3 (permalink)  
Старый 09.11.2011, 17:16
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,577

Небольшой фикс, который заставит работать так как того хочет тк.
<style>
ol li {
 float: left;
 width: 100px;
}
ul li {
 float: none;
 width: auto;
}
li ul {
 display: none;
 margin-left: 0px;
 padding-left: 5px;
}
li:hover>ul {
 display: block;
}
</style>
<ol>
<li>bla-bla
 <ul>
  <li> bla-bla, </li>
  <li> bla-bla-bla, </li>
  <li> mr. Freeman </li>
 </ul>
</li>
<li>bla-bla
 <ul>
  <li> bla-bla, </li>
  <li> bla-bla-bla, </li>
  <li>bla-bla
    <ul>
     <li> bla-bla, </li>
     <li> bla-bla-bla, </li>
     <li> mr. Freeman </li>
    </ul>
   </li>
  <li> mr. Freeman </li>
 </ul>
</li>
</ol>

Только небольшим скриптом для ie теперь не отделаешься.)
__________________
29375, 35
Ответить с цитированием
  #4 (permalink)  
Старый 09.11.2011, 19:00
Аватар для trikadin
Модератор
Отправить личное сообщение для trikadin Посмотреть профиль Найти все сообщения от trikadin
 
Регистрация: 27.04.2010
Сообщений: 3,417

Да, не дочитал до конца.
__________________
Читайте:
Ты любопытный) Всё-таки, ничему в этом мире не помешает хорошая доля юмора)
Как спросить, чтобы вам ответили
Часто Задаваемые Вопросы (FAQ)

Последний раз редактировалось trikadin, 11.11.2011 в 07:19.
Ответить с цитированием
  #5 (permalink)  
Старый 11.11.2011, 02:36
Новичок на форуме
Отправить личное сообщение для Aleksson Посмотреть профиль Найти все сообщения от Aleksson
 
Регистрация: 09.11.2011
Сообщений: 3

Всем большое спасибо за ответы, все работает!
Подскажите, если не трудно, что именно под ИЕ писать, а то с хаками у меня не очень?

Последний раз редактировалось Aleksson, 11.11.2011 в 02:40.
Ответить с цитированием
  #6 (permalink)  
Старый 11.11.2011, 07:21
Аватар для trikadin
Модератор
Отправить личное сообщение для trikadin Посмотреть профиль Найти все сообщения от trikadin
 
Регистрация: 27.04.2010
Сообщений: 3,417

Вам нужно написать маленький код, который будет пробегать по всем "li" в списке и ставить им обработчик на mouseover/mouseout. Например, можно модифицировать стиль таким образом:
li:hover>ul, li._over ul{
 display: block;
}

и при наведении мыши на li ставить ему этот класс. Единственное, что плохо - так это то, что ie6 есть ещё и дочерние селекторы не поддерживает. Поэтому вам придётся ещё помучаться. Мой вариант заключается в том, что надо подумать, сколько уровней будет в списке, а потом модифицировать стиль ещё раз:

li:hover>ul, li._over_l1 ul.l1, li._over_l2 ul.l2, li._over_l3. ul.l3{
 display: block;
}

А дальше, в зависимости от уровня вложенности li, ставить ему класс с соответствующим номером.
__________________
Читайте:
Ты любопытный) Всё-таки, ничему в этом мире не помешает хорошая доля юмора)
Как спросить, чтобы вам ответили
Часто Задаваемые Вопросы (FAQ)
Ответить с цитированием
  #7 (permalink)  
Старый 11.11.2011, 19:08
Новичок на форуме
Отправить личное сообщение для Aleksson Посмотреть профиль Найти все сообщения от Aleksson
 
Регистрация: 09.11.2011
Сообщений: 3

trikadin, большое Вам спасибо, немного поморочился, но уже все работает.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с аккордионом и меню Tie ExtJS 3 01.09.2011 14:36
Горизонтальное меню lopraeph Элементы интерфейса 3 07.06.2011 08:49
Горизонтальное выпадающее меню Tchort Элементы интерфейса 3 16.05.2011 15:41
Горизонтальное меню на jQuery mark2011 jQuery 1 31.12.2010 14:09
Горизонтальное меню с отображение нажатого подменю javascript jQuery 1 18.11.2010 23:44