|
|
|
| Здравствуйте!
Подскажите пожалуйста как сделать так, чтобы при щелчке на пункты основного меню раскрывающееся меню исчезало. А то оно исчезает только при повторном щелчке на тот основной пункт которым было вызванно. Меню написанно на JavaScript. | |
|
|
|
|
|
|
|
для: Сквиртел13
(21.08.2006 в 14:52)
| | скрипт - в студию!
можно сделать временную задержку и делать ненужный слой невидимым через определнное количество секунд. | |
|
|
|
|
|
|
|
для: elenaki
(21.08.2006 в 15:01)
| | Вот скрипт:
<title>Студенческий портал</title>
<style type="text/css">
@import url(style.css);
.closeelem {cursor:hand;list-style-image: url(Knopka.gif)}
.openelem {cursor:hand;list-style-image: url(Knopka.gif)}
.colelem {position:relative; display:none;}
.expelem {position:relative; display:block; list-style-image: url(knopka-4.gif);}
.stili {font-size:14px; font-family:Arial, serif; TEXT-DECORATION: "none"}
</style>
<script language="JavaScript">
function chhidElem (obj,ex)
{
if (obj.className=="colelem")
obj.className="expelem"
else
obj.className="colelem"
if (ex.className=="closeelem")
ex.className="openelem"
else
ex.className="closeelem"
}
</script>
</head>
<body>
<div id="blockmenuN">
<div id="a">
<li onclick="chhidElem(obj1,ex1)"
class="closeelem" id="ex1" title="Права и обязанности студентов
Сессия
Рейтинги
Стипендия"> Важно</li><br><br>
<ul style="right:5px" id="obj1" class="colelem" style="bottom:6px" style="font-size:+1; line-height:21px;">
<li><a href="Vagno.php"><div id="a1"> Права студентов</div></a></li>
<li><a href=""><div id="a1"> Сессия</a></div></li>
<li><a href=""><div id="a1"> Рейтинги</a></div></li>
<li><a href=""><div id="a1"> Стипендия</a></div></li>
</ul>
<ul id="obj2" class="colelem" style="right:5px" style="bottom:6px" style="font-size:+1; line-height:21px;">
<li><a href="Vagno.php"><div id="a1" > Газета</a></li>
<li><a href="Vagno.php"><div id="a1"> Пишем все и обо всем</a></li>
<li><a href="Vagno.php"><div id="a1"> Взгляд студента</a></li>
</ul>
</div>
</div>
Правда не весь скрипт, а то он большой!))) | |
|
|
|
|
|
|
|
для: Сквиртел13
(21.08.2006 в 15:10)
| | Подскажите, как решить мою проблему, а то у меня пока не получается, а мне очень нужно! Заранее всем спасибо! | |
|
|
|
|
|
|
|
для: Сквиртел13
(22.08.2006 в 13:46)
| | Посмотрите вот это. Может пригодится.
http://www.extrabrain.kiev.ua/001/newmenu.htm
Это демка, поэтому работают только подпункты выпадающего меню из первого пункта главного меню, но остальное добавить не проблема. | |
|
|
|
|
|
|
|
для: ExtraBrain
(22.08.2006 в 14:53)
| | Такое меню я знаю как делать. Мне нужно не выпадающее меню, а раскрывающееся.
При щелчке на меню выпадает 1 и 2 пункты.
Меню
первый пункт
второй пункт | |
|
|
|
|
|
|
|
для: Сквиртел13
(23.08.2006 в 13:05)
| | Вот что у меня получилось
<html>
<head>
<title>Студенческий портал</title>
<meta http-equiv="Content-Type" content='text/html; charset=windows-1251'>
<style type="text/css">
.closeelem { cursor:pointer; list-style-image: url(Knopka.gif) }
.colelem { position:relative; display:none; }
.expelem { position:relative; display:block; list-style-image: url(knopka-4.gif); }
</style>
<script>
var flop1=0;
var flop2=0;
var flop3=0;
var flcl1=0;
var flcl2=0;
var flcl3=0;
function setLastOpen(o) {
if(o=='obj1') { if(flcl1==0) flop1=1; flcl1=0; }
if(o=='obj2') { if(flcl2==0) flop2=1; flcl2=0; }
if(o=='obj3') { if(flcl3==0) flop3=1; flcl3=0; }
}
function closeLastOpen() {
if(flop1) { document.getElementById('obj1').className="colelem";flcl1=1;}
if(flop2) { document.getElementById('obj2').className="colelem";flcl2=1;}
if(flop3) { document.getElementById('obj3').className="colelem";flcl3=1;}
flop1=0;
flop2=0;
flop3=0;
}
function hideAllElem() {
document.getElementById('obj1').className="colelem";
document.getElementById('obj2').className="colelem";
document.getElementById('obj3').className="colelem";
}
function chhidElem (o) {
hideAllElem();
document.getElementById(o).className="expelem";
closeLastOpen();
setLastOpen(o);
}
</script>
</head>
<body>
<div id="blockmenuN">
<div id="a">
<li class="closeelem" onclick="chhidElem('obj1')"
title="Важно
Права и обязанности студентов
Сессия
Рейтинги
Стипендия">
Важно
</li>
<br><br>
<ul id="obj1" class="colelem" style="right:5px; bottom:6px; font-size:14px; line-height:21px;">
<li><a href="Vagno.php"><div id="a1"> Права студентов</div></a></li>
<li><a href=""><div id="a1"> Сессия</a></div></li>
<li><a href=""><div id="a1"> Рейтинги</a></div></li>
<li><a href=""><div id="a1"> Стипендия</a></div></li>
</ul>
<li class="closeelem" onclick="chhidElem('obj2')"
title="Студенческая пресса
Газета
Пишем все и обо всем
Взгляд студента">
Студенческая пресса
</li>
<br><br>
<ul id="obj2" class="colelem" style="right:5px; bottom:6px; font-size:14px; line-height:21px;">
<li><a href="Vagno.php"><div id="a1" > Газета</a></li>
<li><a href="Vagno.php"><div id="a1"> Пишем все и обо всем</a></li>
<li><a href="Vagno.php"><div id="a1"> Взгляд студента</a></li>
</ul>
<li class="closeelem" onclick="chhidElem('obj3')"
title="Прочее
Отдых
Любовь
Спорт">
Прочее
</li>
<br><br>
<ul id="obj3" class="colelem" style="right:5px; bottom:6px; font-size:14px; line-height:21px;">
<li><a href="Vagno.php"><div id="a1" > Отдых</a></li>
<li><a href="Vagno.php"><div id="a1"> Любовь</a></li>
<li><a href="Vagno.php"><div id="a1"> Спорт</a></li>
</ul>
</div>
</div>
</body>
</html>
|
| |
|
|
|
|
|
|
|
для: ExtraBrain
(23.08.2006 в 14:27)
| | Большое большое спасибо!!!!
Только Вы не могли бы мне немного подробнее объяснить этот кусок:
var flop1=0;
var flop2=0;
var flop3=0;
var flcl1=0;
var flcl2=0;
var flcl3=0;
Что это означает?
function setLastOpen(o) {
if(o=='obj1') { if(flcl1==0) flop1=1; flcl1=0; }
if(o=='obj2') { if(flcl2==0) flop2=1; flcl2=0; }
if(o=='obj3') { if(flcl3==0) flop3=1; flcl3=0; }
}
Что делает эта функция?
function closeLastOpen() {
if(flop1) { document.getElementById('obj1').className="colelem";flcl1=1;}
if(flop2) { document.getElementById('obj2').className="colelem";flcl2=1;}
if(flop3) { document.getElementById('obj3').className="colelem";flcl3=1;}
Что делает эта функция?
flop1=0;
flop2=0;
flop3=0;
}
Почему именно flop1=0 ?
function hideAllElem() {
document.getElementById('obj1').className="colelem";
document.getElementById('obj2').className="colelem";
document.getElementById('obj3').className="colelem";
}
function chhidElem (o) {
hideAllElem();
document.getElementById(o).className="expelem";
closeLastOpen();
setLastOpen(o);
}
И что делают эти две функции?
Отдельные части я понимаю. Но не могу связать их воедино т.к. некоторые команды не знаю. Если Вам не трудно объясните пожалуйста.
ЕЩЕ РАЗ БОЛЬШОЕ СПАСИБО!!! | |
|
|
|
|
|
|
|
для: Сквиртел13
(23.08.2006 в 17:10)
| | >Большое большое спасибо!!!!
>
>Только Вы не могли бы мне немного подробнее объяснить этот кусок:
>
>var flop1=0;
> var flop2=0;
> var flop3=0;
> var flcl1=0;
> var flcl2=0;
> var flcl3=0;
>Что это означает? Это набор флагов соответствующих открытым (flop) и закрытым (flcl) подменю. Это обычные переменные и их можно было назвать по другому
>
> function setLastOpen(o) {
> if(o=='obj1') { if(flcl1==0) flop1=1; flcl1=0; }
> if(o=='obj2') { if(flcl2==0) flop2=1; flcl2=0; }
> if(o=='obj3') { if(flcl3==0) flop3=1; flcl3=0; }
> }
>Что делает эта функция? Эта функция определяет какое подменю последним открывалось и выставляет соответсвующие флаги, как бы запоминает последний шаг
>
>
> function closeLastOpen() {
> if(flop1) { document.getElementById('obj1').className="colelem";flcl1=1;}
> if(flop2) { document.getElementById('obj2').className="colelem";flcl2=1;}
> if(flop3) { document.getElementById('obj3').className="colelem";flcl3=1;}
>Что делает эта функция? Эта функция закрывает подменю которое открывалось последним
>
>
> flop1=0;
> flop2=0;
> flop3=0;
> }
>Почему именно flop1=0 ? Это выставляются признаки что все подменю сейчас закрыты
>
>
> function hideAllElem() {
> document.getElementById('obj1').className="colelem";
> document.getElementById('obj2').className="colelem";
> document.getElementById('obj3').className="colelem";
> }
>
> function chhidElem (o) {
> hideAllElem();
> document.getElementById(o).className="expelem";
> closeLastOpen();
> setLastOpen(o);
> }
>И что делают эти две функции? Первая закрывает все подменю. Вторая открывает подменю если оно закрыто или закрывает если мы клацнули на уже открытом подменю
>Отдельные части я понимаю. Но не могу связать их воедино т.к. некоторые команды не знаю. Если Вам не трудно объясните пожалуйста.
>ЕЩЕ РАЗ БОЛЬШОЕ СПАСИБО!!! | |
|
|
|
|
|
|
|
для: ExtraBrain
(23.08.2006 в 14:27)
| | Понятно. Большое спасибо за объяснение! | |
|
|
|
|
|
|
|
для: Сквиртел13
(22.08.2006 в 13:46)
| | советую использовать слои, а не списки. со слоями можно делать, что угодно. и кода будет меньше и работать приятнее. | |
|
|
|
|
|
|
|
для: elenaki
(22.08.2006 в 15:02)
| | Да со слоями работать легче. Но как сделать с помощью слоев раскрывающееся меню я не знаю. Я нашла только со списками. Может подскажете где найти? Заранее спасибо. | |
|
|
|