SiteNull.ru - мы учим делать сайты: Третий уровень меню - SiteNull.ru - мы учим делать сайты

Перейти к содержимому

  • (2 Страниц)
  • +
  • 1
  • 2
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

Третий уровень меню Оценка: -----

#1 Пользователь офлайн   lesia Иконка

  • Профессионал
  • Группа: Пользователи
  • Сообщений: 632
  • Регистрация: 14 Июнь 09
  • Поблагодарили: 1
  • Городоттуда

Отправлено 17 Апрель 2010 - 15:08

Двухуровневое меню работает хорошо, но теперь появилась необходимость введения третьего уровня... т.е. чтоб появилась возможность добавить к 1 пункту, к 1.1 - 1.1.1. ...
как бы это осуществить не испортив того, что уже есть. Напоминаю, код действующего:

<script type="text/javascript">//<![CDATA[
var menuids=["suckertree1"];    
function buildsubmenus() {    
    for (var i=0; i<menuids.length; i++){
    var ultags=document.getElementById(menuids[i]).getElementsByTagName("ul");
    for (var t=0; t<ultags.length; t++){
    ultags[t].parentNode.getElementsByTagName("a")[0].className="subfolderstyle";
    if (ultags[t].parentNode.parentNode.id==menuids[i])    {ultags[t].style.left=ultags[t].parentNode.offsetWidth+"px"}
    else
    {ultags[t].style.left=ultags[t-1].getElementsByTagName("a")[0].offsetWidth+"px"};    ultags[t].parentNode.onmouseover=function(){
    this.getElementsByTagName("ul")[0].style.display="block";
    };
    ultags[t].parentNode.onmouseout=function(){
    this.getElementsByTagName("ul")[0].style.display="none";
    }};
  for (var t=ultags.length-1; t>-1; t--){
    ultags[t].style.visibility="visible";
    ultags[t].style.display="none";
    }}};
    if (window.addEventListener){
    window.addEventListener("load", buildsubmenus, false)}
    else if (window.attachEvent){
    window.attachEvent("onload", buildsubmenus)}
//]]></script><div class="suckerdiv">
    <ul id="suckertree1">      
    <li><a href="#"  class="subfolderstyle">1</a>

            <ul style="left: 160px; visibility: visible; display: none;">
            <li><a target="_blank" href="ССЫЛКА НА СТРАНИЦУ">• 1.1.</a></li>
              <li><a target="_blank" href="ССЫЛКА НА СТРАНИЦУ">• 1.2.</a></li>
              </ul>

      </li>

        <li><a href="#" class="subfolderstyle">2</a>

              <ul style="left: 160px; visibility: visible; display: none;">
              <li><a target="_blank" href="ССЫЛКА НА СТРАНИЦУ">• 2.1.</a> </li>
                </ul>

        </li>

        <li><a href="#" class="subfolderstyle">3</a>

              <ul style="left: 160px; visibility: visible; display: none;">
              <li><a target="_blank" href="ССЫЛКА НА СТРАНИЦУ">• 3.1.</a></li>
                </ul>

          </li>
            </ul>
          </li>
           </ul>
      </div>

Спасибо. :yes:


Награды:

Награды пользователя
0

#2 Пользователь офлайн   Irbis Иконка

  • Администратор
  • Иконка
  • Группа: Администраторы
  • Сообщений: 250
  • Регистрация: 02 Апрель 10
  • Поблагодарили: 2
  • ГородСаратов

Отправлено 17 Апрель 2010 - 19:43

Наверно так:
<script type="text/javascript">//<![CDATA[
var menuids=["suckertree1"];    
function buildsubmenus() {    
    for (var i=0; i<menuids.length; i++){
    var ultags=document.getElementById(menuids[i]).getElementsByTagName("ul");
    for (var t=0; t<ultags.length; t++){
    ultags[t].parentNode.getElementsByTagName("a")[0].className="subfolderstyle";
    if (ultags[t].parentNode.parentNode.id==menuids[i])    {ultags[t].style.left=ultags[t].parentNode.offsetWidth+"px"}
    else
    {ultags[t].style.left=ultags[t-1].getElementsByTagName("a")[0].offsetWidth+"px"};    ultags[t].parentNode.onmouseover=function(){
    this.getElementsByTagName("ul")[0].style.display="block";
    };
    ultags[t].parentNode.onmouseout=function(){
    this.getElementsByTagName("ul")[0].style.display="none";
    }};
  for (var t=ultags.length-1; t>-1; t--){
    ultags[t].style.visibility="visible";
    ultags[t].style.display="none";
    }}};
    if (window.addEventListener){
    window.addEventListener("load", buildsubmenus, false)}
    else if (window.attachEvent){
    window.attachEvent("onload", buildsubmenus)}
//]]></script><div class="suckerdiv">
    <ul id="suckertree1">      
    <li><a href="#"  class="subfolderstyle">1</a>

            <ul style="left: 160px; visibility: visible; display: none;">
            <li><a target="_blank" href="ССЫЛКА НА СТРАНИЦУ" class="subfolderstyle">• 1.1.</a>
					<ul>
						<li><a target="_blank" href="ССЫЛКА НА СТРАНИЦУ">• 1.1.1.</a></li>
					</ul>
				</li>
				</li>
              <li><a target="_blank" href="ССЫЛКА НА СТРАНИЦУ">• 1.2.</a></li>
              </ul>

      </li>

        <li><a href="#" class="subfolderstyle">2</a>

              <ul style="left: 160px; visibility: visible; display: none;">
              <li><a target="_blank" href="ССЫЛКА НА СТРАНИЦУ">• 2.1.</a> </li>
                </ul>

        </li>

        <li><a href="#" class="subfolderstyle">3</a>

              <ul style="left: 160px; visibility: visible; display: none;">
              <li><a target="_blank" href="ССЫЛКА НА СТРАНИЦУ">• 3.1.</a></li>
                </ul>

          </li>
            </ul>
          </li>
           </ul>
      </div>


Награды:

Награды пользователя
0

#3 Пользователь офлайн   lesia Иконка

  • Профессионал
  • Группа: Пользователи
  • Сообщений: 632
  • Регистрация: 14 Июнь 09
  • Поблагодарили: 1
  • Городоттуда

Отправлено 17 Апрель 2010 - 21:32

что-то не так ...
перейти на 1.1.1. получается нормально, НО!
попробуй перейти на 1.2. - только боком как-то :scratch:


Награды:

Награды пользователя
0

#4 Пользователь офлайн   Irbis Иконка

  • Администратор
  • Иконка
  • Группа: Администраторы
  • Сообщений: 250
  • Регистрация: 02 Апрель 10
  • Поблагодарили: 2
  • ГородСаратов

Отправлено 17 Апрель 2010 - 23:57

А ты попробуй перейти с 1 на 2 будет тоже самое. Это недостаток самого скрипта.


Награды:

Награды пользователя
0

#5 Пользователь офлайн   lesia Иконка

  • Профессионал
  • Группа: Пользователи
  • Сообщений: 632
  • Регистрация: 14 Июнь 09
  • Поблагодарили: 1
  • Городоттуда

Отправлено 18 Апрель 2010 - 10:29

Недостаток можно исправить или где? :read:


Награды:

Награды пользователя
0

#6 Пользователь офлайн   Irbis Иконка

  • Администратор
  • Иконка
  • Группа: Администраторы
  • Сообщений: 250
  • Регистрация: 02 Апрель 10
  • Поблагодарили: 2
  • ГородСаратов

Отправлено 19 Апрель 2010 - 14:20

:dont_know:


Награды:

Награды пользователя
0

#7 Пользователь офлайн   lesia Иконка

  • Профессионал
  • Группа: Пользователи
  • Сообщений: 632
  • Регистрация: 14 Июнь 09
  • Поблагодарили: 1
  • Городоттуда

Отправлено 19 Апрель 2010 - 17:54

ну драааасти! Не верю ... :hmm:


Награды:

Награды пользователя
0

#8 Пользователь офлайн   Irbis Иконка

  • Администратор
  • Иконка
  • Группа: Администраторы
  • Сообщений: 250
  • Регистрация: 02 Апрель 10
  • Поблагодарили: 2
  • ГородСаратов

Отправлено 22 Апрель 2010 - 20:52

Если честно, просто очень не люблю копаться в сторонних скриптах


Награды:

Награды пользователя
0

#9 Пользователь офлайн   lesia Иконка

  • Профессионал
  • Группа: Пользователи
  • Сообщений: 632
  • Регистрация: 14 Июнь 09
  • Поблагодарили: 1
  • Городоттуда

Отправлено 24 Апрель 2010 - 09:51

Ир, это твой скрипт, только несколько переделан Fox (с 2х2) там она всего добавила стили к UL и только. :scratch:
Ну ланнн, это уж когда время появится.


Награды:

Награды пользователя
0

#10 Пользователь офлайн   lesia Иконка

  • Профессионал
  • Группа: Пользователи
  • Сообщений: 632
  • Регистрация: 14 Июнь 09
  • Поблагодарили: 1
  • Городоттуда

Отправлено 27 Апрель 2010 - 09:48

Вот смотри... я почистила твой код от мусора и он в исходном варианте типа такой:
Что можно поправить для более простого перехода (и чтоб не ругался ИЭ...) ;)

<script type="text/javascript">//<![CDATA[
var menuids=["suckertree1"];    
function buildsubmenus() {    
    for (var i=0; i<menuids.length; i++){
    var ultags=document.getElementById(menuids[i]).getElementsByTagName("ul");
    for (var t=0; t<ultags.length; t++){
    ultags[t].parentNode.getElementsByTagName("a")[0].className="subfolderstyle";
    if (ultags[t].parentNode.parentNode.id==menuids[i])    {ultags[t].style.left=ultags[t].parentNode.offsetWidth+"px"}
    else
    {ultags[t].style.left=ultags[t-1].getElementsByTagName("a")[0].offsetWidth+"px"};    ultags[t].parentNode.onmouseover=function(){
    this.getElementsByTagName("ul")[0].style.display="block";
    };
    ultags[t].parentNode.onmouseout=function(){
    this.getElementsByTagName("ul")[0].style.display="none";
    }};
  for (var t=ultags.length-1; t>-1; t--){
    ultags[t].style.visibility="visible";
    ultags[t].style.display="none";
    }}};
    if (window.addEventListener){
    window.addEventListener("load", buildsubmenus, false)}
    else if (window.attachEvent){
    window.attachEvent("onload", buildsubmenus)}
//]]></script><div class="suckerdiv">
    <ul id="suckertree1">      
    <li><a href="#">1</a>

            <ul>
            <li><a target="_blank" href="ССЫЛКА НА СТРАНИЦУ">• 1.1.</a>
                                        <ul>
                                                <li><a target="_blank" href="ССЫЛКА НА СТРАНИЦУ">• 1.1.1.</a></li>
                                        </ul>
                                </li>
                                </li>
              <li><a target="_blank" href="ССЫЛКА НА СТРАНИЦУ">• 1.2.</a></li>
              </ul>

      </li>

        <li><a href="#">2</a>

              <ul>
              <li><a target="_blank" href="ССЫЛКА НА СТРАНИЦУ">• 2.1.</a> </li>
                </ul>

        </li>

        <li><a href="#">3</a>

              <ul>
              <li><a target="_blank" href="ССЫЛКА НА СТРАНИЦУ">• 3.1.</a></li>
                </ul>

          </li>
            </ul>
          </li>
           </ul>
      </div>


Награды:

Награды пользователя
0

#11 Пользователь офлайн   Irbis Иконка

  • Администратор
  • Иконка
  • Группа: Администраторы
  • Сообщений: 250
  • Регистрация: 02 Апрель 10
  • Поблагодарили: 2
  • ГородСаратов

Отправлено 27 Апрель 2010 - 18:48

Та это не мой код Лесь, я многоуровневых меню не писал :)
Просто дал тебе код скрипта из сети.
У меня сейчас заказ висит вот его сдам через пару дней, напишу тада многоуровневую менюшку


Награды:

Награды пользователя
0

#12 Пользователь офлайн   lesia Иконка

  • Профессионал
  • Группа: Пользователи
  • Сообщений: 632
  • Регистрация: 14 Июнь 09
  • Поблагодарили: 1
  • Городоттуда

Отправлено 27 Апрель 2010 - 22:38

:hi: Вот и славно , тогда!


Награды:

Награды пользователя
0

#13 Пользователь офлайн   lesia Иконка

  • Профессионал
  • Группа: Пользователи
  • Сообщений: 632
  • Регистрация: 14 Июнь 09
  • Поблагодарили: 1
  • Городоттуда

Отправлено 28 Май 2010 - 17:24

Просмотр сообщенияIrbis (27 Апрель 2010 - 19:48) писал:

Та это не мой код Лесь, я многоуровневых меню не писал :)
Просто дал тебе код скрипта из сети.
У меня сейчас заказ висит вот его сдам через пару дней, напишу тада многоуровневую менюшку

Тут было написано пару дней или пару месяцев, а?)))


Награды:

Награды пользователя
0

#14 Пользователь офлайн   lesia Иконка

  • Профессионал
  • Группа: Пользователи
  • Сообщений: 632
  • Регистрация: 14 Июнь 09
  • Поблагодарили: 1
  • Городоттуда

Отправлено 25 Июль 2010 - 21:48

Я буду настаивать!!! (с) :D


Награды:

Награды пользователя
0

#15 Пользователь офлайн   Irbis Иконка

  • Администратор
  • Иконка
  • Группа: Администраторы
  • Сообщений: 250
  • Регистрация: 02 Апрель 10
  • Поблагодарили: 2
  • ГородСаратов

Отправлено 25 Июль 2010 - 23:45

:)


Награды:

Награды пользователя
0

#16 Пользователь офлайн   lesia Иконка

  • Профессионал
  • Группа: Пользователи
  • Сообщений: 632
  • Регистрация: 14 Июнь 09
  • Поблагодарили: 1
  • Городоттуда

Отправлено 06 Август 2010 - 19:42

Цитата

lesia, а тебе вертикальное или горизонтальное меню надо?

Выше написанное похоже как вертикальное???
Но если ты осилишь плюс к этому еще и горизонтальное, то мы примем и его с благодарностью :yes:


Награды:

Награды пользователя
0

#17 Пользователь офлайн   Irbis Иконка

  • Администратор
  • Иконка
  • Группа: Администраторы
  • Сообщений: 250
  • Регистрация: 02 Апрель 10
  • Поблагодарили: 2
  • ГородСаратов

Отправлено 06 Август 2010 - 19:46

сегодня будет


Награды:

Награды пользователя
0

#18 Пользователь офлайн   lesia Иконка

  • Профессионал
  • Группа: Пользователи
  • Сообщений: 632
  • Регистрация: 14 Июнь 09
  • Поблагодарили: 1
  • Городоттуда

Отправлено 06 Август 2010 - 19:47

:klass:


Награды:

Награды пользователя
0

#19 Пользователь офлайн   Irbis Иконка

  • Администратор
  • Иконка
  • Группа: Администраторы
  • Сообщений: 250
  • Регистрация: 02 Апрель 10
  • Поблагодарили: 2
  • ГородСаратов

Отправлено 07 Август 2010 - 15:55

<!-- Стиль меню -->
<style type="text/css">

#sn_menu {
	background: #fff;
	padding: 0;
	margin: 0;
}
#sn_menu li {
	position: relative;
	display: block;
	width: 180px;
	padding: 0;
	margin: 0;
}

#sn_menu a {
	display: block;
	border: 1px solid #999;
	padding: 5px;
}

#sn_menu ul {
	background: #fff;
	position: absolute;
	padding: 0;
	margin: 0;
	margin-top: -31px;
	margin-left: 180px;
}
#sn_menu li.sub {
	background: url("sub.png") no-repeat right;
}
</style>

<!-- Сама менюха -->
<ul id="sn_menu">
	<li class="sub"><a href="#">Форум</a>
		<ul>
			<li class="sub"><a href="#">Канцелярия</a>
				<ul>
					<li><a href="http://sitenull.ru/index.php?/topic/171-%d0%be%d0%bd%d0%bb%d0%b0%d0%b9%d0%bd-%d1%82%d0%b5%d1%81%d1%82%d1%8b/page__view__getnewpost">Онлайн тесты</a></li>
				</ul>
			</li>
			<li><a href="http://sitenull.ru/index.php?/forum/10-%d1%83%d1%80%d0%be%d0%ba%d0%b8-html">Уроки HTML</a></li>
			<li class="sub"><a href="http://sitenull.ru/index.php?/forum/11-%d1%83%d1%80%d0%be%d0%ba%d0%b8-css">Уроки CSS</a>
				<ul>
					<li><a href="http://sitenull.ru/index.php?/topic/149-%d1%83%d1%80%d0%be%d0%ba-6-%d1%84%d0%be%d0%bd-%d1%81%d1%82%d1%80%d0%b0%d0%bd%d0%b8%d1%86%d1%8b%d1%8d%d0%bb%d0%b5%d0%bc%d0%b5%d0%bd%d1%82%d0%be%d0%b2/">Фон страницы</a></li>
					<li><a href="http://sitenull.ru/index.php?/topic/117-%d1%83%d1%80%d0%be%d0%ba-5-%d0%bf%d0%be%d0%b7%d0%b8%d1%86%d0%b8%d0%be%d0%bd%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d1%8d%d0%bb%d0%b5%d0%bc%d0%b5%d0%bd%d1%82%d0%be%d0%b2/">Позиционирование элементов</a></li>
					<li><a href="http://sitenull.ru/index.php?/topic/27-%d1%83%d1%80%d0%be%d0%ba-4-%d0%be%d1%84%d0%be%d1%80%d0%bc%d0%bb%d0%b5%d0%bd%d0%b8%d0%b5-%d1%82%d0%b5%d0%ba%d1%81%d1%82%d0%b0/">Оформление текста</a></li>
				</ul>
			</li>
		</ul>
	</li>
	<li><a href="http://cleverant.ru">Хостинг картинок</a></li>
</ul>



<!-- Скрипт выпадания -->
<script type="text/javascript">
<!--
// Copyright SiteNull.ru
menu = document.getElementById("sn_menu");
lists = menu.getElementsByTagName("ul");
for(i=0; i<lists.length; i++){
	if(lists[i].parentNode.className == "sub"){
		lists[i].style.display = "none";
		lists[i].parentNode.onmouseover = function(){
			sublists = this.getElementsByTagName("ul")[0];
			if(sublists.style.display == "none"){
					sublists.style.display = "block";
					//sublists.style.left = sublists.parentNode.style.left+sublists.parentNode.offsetWidth+"px";
					sublists.style.zIndex = this.style.zIndex+2;
			}
		}
		lists[i].parentNode.onmouseout = function(){
			sublists = this.getElementsByTagName("ul")[0];
			if(sublists.style.display == "block"){
					sublists.style.display = "none";
			}
		}
	}
}
//-->
</script>


Скрипт тестил в IE, Opera, Firefox. Везде работает корректно


Награды:

Награды пользователя
0

#20 Пользователь офлайн   lesia Иконка

  • Профессионал
  • Группа: Пользователи
  • Сообщений: 632
  • Регистрация: 14 Июнь 09
  • Поблагодарили: 1
  • Городоттуда

Отправлено 07 Август 2010 - 18:50

Поставила пробно на старую обложку - http://www.sun-place.com/html-h58.htm, что тут может быть не так? :scratch:


Награды:

Награды пользователя
0

  • (2 Страниц)
  • +
  • 1
  • 2
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

1 человек читают эту тему
0 пользователей, 1 гостей, 0 скрытых пользователей