Суббота, 28.12.2024, 13:47
Приветствую Вас Гость

Меню сайта
Web-программирование
Категории раздела
Наш опрос
Какой браузер Вы используете?
Всего ответов: 1423
Статистика

Анализ веб сайтов
Главная » Статьи » Статьи o JavaScript

tree (дерево)
Это скелет для построения полнофункционального скрипта классического дерева или другого списка, хотя можно использовать и в таком виде. Рассмотрим код:

JavaScript:
01var t,lit,i;
02 
03function tree(liter) {        
04lit=liter;                      //литера
05i=1;                            //счетчик
06t = setInterval(show, 75);  //развертываем/сворачиваем с заданным интервалом
07}
08 
09function show() {
10var el;
11if(el = document.getElementById(lit + i)) {
12el.style.display = (el.style.display == 'block')?'none':'block';   
13i++;       
14}  
15else clearInterval(t);       
16}

HTML:
01<ul>
02<li>something1</li>
03<li>something2</li>
04<li>something3</li>
05<li><a onclick="tree('s')">something4sublist</a>
06<ul>
07<li id="s1" style="display: none;">something41</li>
08<li id="s2" style="display: none;"><a onclick="tree('x')">something42sublist</a>
09<ul>
10<li id="x1" style="display: none;">something421</li>
11<li id="x2" style="display: none;">something422</li>
12</ul>
13</li>
14<li id="s3" style="display: none;">something43</li>
15</ul>
16</li>
17<li>something5</li>
18</ul>
Можно убрать setInterval и просто вызывать функцию show(), тогда список будет открываться не поочередно, а сразу.

проблемы:

  • если высота блока меньше высоты развернутого списка, то при раскрытии/закрытии пунктов размеры блока будут скакать, придется принимать дополнительные меры
Категория: Статьи o JavaScript | Добавил: Rammstein (22.11.2010)
Просмотров: 574 | Рейтинг: 0.0/0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Реклама
Поиск
Друзья сайта
Топ100- Веб-дизайн free counters