Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: выпадающие меню
 
 автор: margol   (13.06.2006 в 14:48)   письмо автору
 
 

Взяла кусок кода с
http://www.softtime.ru/info/articlephp.php?id_article=37
в самом низу готовый фрагмент для выпадающих меню
И в мазиле почему-то не работает, странно что конкретно может не работать?

   
 
 автор: elenaki   (13.06.2006 в 15:37)   письмо автору
 
   для: margol   (13.06.2006 в 14:48)
 

ничего странного. вот если бы использовали кроссбраузерную библиотеку, все бы работало.

   
 
 автор: margol   (13.06.2006 в 16:07)   письмо автору
 
   для: elenaki   (13.06.2006 в 15:37)
 

Это когда пишешь для каждого браузера свой JS код? А где можно нечто подобное посмотреть? Я в JS почти ноль ... :-)

   
 
 автор: elenaki   (13.06.2006 в 16:10)   письмо автору
 
   для: margol   (13.06.2006 в 16:07)
 

klayers.js - http://www.kruglov.ru/klayers/

свой код писать не надо. надо использовать библиотеку. там уже все функции прописаны.

   
 
 автор: margol   (14.06.2006 в 12:59)   письмо автору
 
   для: elenaki   (13.06.2006 в 16:10)
 

1 Установила библиотеку klayers в ту же папку что и сайт
2 Хочу сделать выпадающие меню, вот код:
<script src="klayers.js"></script>
<script>
// стирает все слои (вернее я хочу чтобы стирала)
function cl(){
for(var i=1; i<=5; i++) {
var L=layer("sub"+num);
L.hide();
}
// рисует заданный слой
function show(num){
var L=layer("sub"+num);
cl();
L.show();
}
</script>

<div id="top" onMouseOver="show('1')" >
<a href="page1.php">Пункт 1</a></div>

<div id="sub1" onMouseOut="cl();">
<a href="subpage1.php" title="Подпункт 1" onMouseOver="show('1')">Подпункт </a><br/>
<a href="subpage2.php" title="Подпункт 2" onMouseOver="show('1')">Подпункт 2</a><br/>
<a href="subpage3.php" title="Подпункт 3" onMouseOver="show('1')">Подпункт 3</a><br/>
</div>

3 Подскажите что я делаю не так :-)

   
 
 автор: elenaki   (14.06.2006 в 13:06)   письмо автору
 
   для: margol   (14.06.2006 в 12:59)
 

1. function cl(){
for(var i=1; i<=5; i++) {
var L=layer("sub"+num);
L.hide();
}
} - пропущена }

2. function cl(){
for(var i=1; i<=5; i++) {
var L=layer("sub"+num);
L.hide();
}
переменная цикла - i, а прибавляете к имени почему-то num. конечно, он не определен

3. цикл определен до 5 значений, а слой с номером - только один. поэтому выдавалась ошибка
сделала один проход цикла (i<=2) и все работает

   
 
 автор: margol   (14.06.2006 в 13:13)   письмо автору
 
   для: elenaki   (14.06.2006 в 13:06)
 

Cпасибо за ответ, но все равно не работает.
У меня 5 слоев, это я просто кусочек кода привела.
Может еще что?

   
 
 автор: elenaki   (14.06.2006 в 13:22)   письмо автору
 
   для: margol   (14.06.2006 в 13:13)
 

1. слой с подменю изначально должен быть скрыт
2. слой с подменю должен скрываться и при уходе мышки с пункта главного меню
вот этот кусок кода у меня работает. (извините за вопр.знаки, у меня нет русского)


<script src="klayers.js"></script>
<script>
// ??????? ??? ???? (?????? ? ???? ????? ???????)
function cl(){ 
for(i=1; i<2; i++) {
var L=layer("sub"+i);
L.hide();
}
}
// ?????? ???????? ???? 
function show(num){
var L=layer("sub"+num);
cl();
L.show();
}
</script>

<div id="top" onMouseOver="show('1')" onMouseOut="cl();">
<a href="page1.php">????? 1</a></div>

<div id="sub1" onMouseOut="cl();" style="visibility: hidden;">
<a href="subpage1.php" title="???????? 1" onMouseOver="show('1')">???????? </a><br/>
<a href="subpage2.php" title="???????? 2" onMouseOver="show('1')">???????? 2</a><br/>
<a href="subpage3.php" title="???????? 3" onMouseOver="show('1')">???????? 3</a><br/>
</div>

   
 
 автор: margol   (14.06.2006 в 13:31)   письмо автору
 
   для: elenaki   (14.06.2006 в 13:22)
 

Класс! Заработало!!!!!!!! Спасибо! Только onMouseOut"cl()" в верхнем меню не надо, а то с него на выпадающее меню не попадешь :-) Конечно можно сделать аттракцион, чтобы с какой-нибудь попытки пользователь на него всетаки попадал :-)
А скажите как вы картинки с кодами делаете? Какими тегами?

   
 
 автор: elenaki   (14.06.2006 в 13:37)   письмо автору
 
   для: margol   (14.06.2006 в 13:31)
 

надо выделить кусок текста и нажать на code /code

(если вы это имеете в виду)

   
 
 автор: margol   (14.06.2006 в 13:39)   письмо автору
 
   для: elenaki   (14.06.2006 в 13:37)
 

дааааааааааа

   
 
 автор: margol   (15.06.2006 в 12:45)   письмо автору
 
   для: margol   (13.06.2006 в 14:48)
 

Продолжаю работать над выпадающим меню. У меня есть файл "шапка" для нескольких страниц. Я хочу в нем сделать универсальное выпадающее меню. Вот кусочек кода. При наведении на мое меню, которое печатается из цикла, div c id="sub1" не показывается :-( Что я делаю не так?

foreach($meny as $key => $value){
    $i=1;
    if ($key==$MenuItem) {$t1=''; $t2='';}
    else {$t1='<strong>'; $t2='</strong>';}
    $on="show('1')";
    echo '<a href="'.$key.'" onMouseOver'.$on.' >'.$t1.$value.$t2.'</a>' ;
    if ($i<count($meny)-1) {echo "&nbsp;&nbsp;&nbsp;"; $i++;}
}
};
?>

<div id="sub1" class="sub" style="left:70px; top:10px; visibility:hidden;" onMouseOut="cl();">
<a class="submn" href="subpage1.php" title="Подпункт 1" onMouseOver="show('1')">Подпункт 1</a><br />
<a class="submn" href="subpage2.php" title="Подпункт 2" onMouseOver="show('1')">Подпункт 2</a><br />
<a class="submn" href="subpage3.php" title="Подпункт 3" onMouseOver="show('1')">Подпункт 3</a><br />
</div>

   
 
 автор: KPETuH   (15.06.2006 в 12:53)   письмо автору
 
   для: margol   (15.06.2006 в 12:45)
 

предлагаю плюнуть на javascript и обойтись css http://webmastak.com/articles/2005/07/04/css-menu/

   
 
 автор: elenaki   (15.06.2006 в 12:59)   письмо автору
 
   для: margol   (15.06.2006 в 12:45)
 

внимательней надо быть. ошибка в echo:

  echo '<a href="'.$key.'" onMouseOver = "'.$on.'">'.$t1.$value.$t2.'</a>' ; 

пропущен знак = B onMouseOver
PS
предлагаю не плевать и не слушать советы всяких К-ов

   
 
 автор: margol   (15.06.2006 в 13:07)   письмо автору
 
   для: elenaki   (15.06.2006 в 12:59)
 

Да нет, знак равенства пропал в процессе последнего эксперимента, и с ним тоже не работает. В мазиле просто не работает, а в IE говорит на странице есть ошибки, а какие умалчивает, видимо с меню.

KRETuH:
попробую разобраться.

Спасибо вам!

   
 
 автор: elenaki   (15.06.2006 в 13:23)   письмо автору
 
   для: margol   (15.06.2006 в 13:07)
 

все работает. пришлось дописать кое-что. у меня нет вашего массива и функции Java-script я
взяла из верхних сообщений.


<SCRIPT LANGUAGE="JavaScript" TYPE="text/javascript" src="klayers.js"></SCRIPT>
<script> 
// ??????? ??? ???? (?????? ? ???? ????? ???????) 
function cl(){ 
for(i=1; i<2; i++) { 
var L=layer("sub"+i); 
L.hide(); 


// ?????? ???????? ???? 
function show(num){ 
var L=layer("sub"+num); 
cl(); 
L.show(); 

</script> 


<?
$meny
["0"] = "punkt 1";
$meny["1"] = "punkt 2";
$meny["2"] = "punkt 3";

foreach(
$meny as $key => $value){ 
    
$i=1
    if (
$key==$MenuItem) {$t1=''$t2='';} 
    else {
$t1='<strong>'$t2='</strong>';} 
    
$on="show('1')"
    echo 
'<a href="'.$key.'" onMouseOver = "'.$on.'">'.$t1.$value.$t2.'</a>' 
    if (
$i<count($meny)-1) {echo "&nbsp;&nbsp;&nbsp;"$i++;} 
}; 
?> 

<div id="sub1" class="sub" style="left:70px; top:10px; visibility:hidden;" onMouseOut="cl();"> 
<a class="submn" href="subpage1.php" title="???????? 1" onMouseOver="show('1')">???????? 1</a><br /> 
<a class="submn" href="subpage2.php" title="???????? 2" onMouseOver="show('1')">???????? 2</a><br /> 
<a class="submn" href="subpage3.php" title="???????? 3" onMouseOver="show('1')">???????? 3</a><br /> 
</div> 

   
 
 автор: margol   (15.06.2006 в 15:05)   письмо автору
 
   для: elenaki   (15.06.2006 в 13:23)
 

Ваш кусочек у меня тоже работает пока загружается непосредственно он, но как только идет include его в другой документ все перестает работать. Библиотеки klayers в обоих прописаны (на всякий случай). Посмотрю еще, о результате потом напишу, если выясню в чем было дело.

Ну незнаю, не получается.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования