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

HTML+CSS+JavaScript

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

 

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

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

тема: древоменю на js и CSS
 
 автор: necroms   (18.11.2008 в 17:56)   письмо автору
 
 

Возникла потребность в написании древоменю на js, и названия всех меню и подменю должны загружаться из MySql. Так как в js я не селен, то после небольшого его изучения вышло следующее:
<br>
это html/php код:<br>

        <td>
        <?php
        $result1
=mysql_query("SELECT * FROM menu",$bd);
        
$myrow1=mysql_fetch_array($result1);
        
$i=0;
        do
        {
        
$i++;
        echo 
"<div id='main_menu$i' onClick='menuclick$i()' onMouseOver='menuover$i()' onMouseOut='menuout$i()'><img name='go_$i' src='images/go.gif' border='0'> $myrow1[cat]</div><ul id='look$i' style='display:none'>";
        
        
$result10=mysql_query("SELECT * FROM menu$i",$bd);
        
$myrow10=mysql_fetch_array($result10);
        do
        {
        echo 
"<li><a href='dfd'>$myrow10[cat]</a></li>";
        }while(
$myrow10=mysql_fetch_array($result10));
        echo 
"</ul>";
        }while(
$myrow1=mysql_fetch_array($result1));
        
?>
        </td>

<br>
это js:<br>

<script language="javascript">
<?php
echo "go1 = new Image();
go1.src = 'images/go.gif';
go2 = new Image();
go2.src = 'images/go_click.gif';"
;
$num_menu=mysql_query("SELECT COUNT(*) FROM menu",$bd);
$num_menu=mysql_fetch_array($num_menu);
$i=0;
do
{
$i++;
print <<<here
function menuover$i()
{
if(document.getElementById("look
$i").style.display=="none") {
document.getElementById("main_menu
$i").style.background = "url(../images/main_menu_over.gif)";
}}
function menuout
$i()
{
if(document.getElementById("look
$i").style.display=="none") {
document.getElementById("main_menu
$i").style.background = "url(../images/main_menu.gif)"; 
}}
function menuclick
$i()
{
if(document.getElementById("look
$i").style.display=="none") {
document.getElementById("main_menu
$i").style.background = "url(../images/main_menu_click.gif)";
document.getElementById("look
$i").style.display = ""; 
document.go_
$i.src=eval("go2.src");
} else {
document.getElementById("main_menu
$i").style.background = "url(../images/main_menu.gif)";
document.getElementById("look
$i").style.display = "none"; 
document.go_
$i.src=eval("go1.src");}
}
here;
} while(
$i<=$num_menu[0]);
?>
</script>

<br>
это CSS:<br>

#main_menu1 {background:url(../images/main_menu.gif);
            background-repeat:no-repeat;
            margin-left:10px;
            margin-top:15px;
            width:179px;
            padding:7px;
            text-align:left;
            font-size:18px;
            }                
#look1         {font-size:17px;
            margin-top:0px;
            margin-left:20px;
            list-style-image:url(../images/li.gif);
            }
        
#main_menu2 {background:url(../images/main_menu.gif);
            background-repeat:no-repeat;
            margin-left:10px;
            margin-top:15px;
            width:179px;
            padding:7px;
            text-align:left;
            font-size:18px;
            }                
#look2         {font-size:17px;
            margin-top:0px;
            margin-left:20px;
            list-style-image:url(../images/li.gif);
            }
#main_menu3 {background:url(../images/main_menu.gif);
            background-repeat:no-repeat;
            margin-left:10px;
            margin-top:15px;
            width:179px;
            padding:7px;
            text-align:left;
            font-size:18px;
            }                
#look3         {font-size:17px;
            margin-top:0px;
            margin-left:20px;
            list-style-image:url(../images/li.gif);
            }


<br>так вот, это все работает, но основная проблема заключаеться в том, что если нужно добавить еще одно меню, то нужно добовлять стили в CSS. А я хочу довести все до автомата. И еще, это мой первый скрипт на js, можно его как-то оптимизировать?

  Ответить  
 
 автор: mikha   (18.11.2008 в 19:39)   письмо автору
 
   для: necroms   (18.11.2008 в 17:56)
 

Есть просто суперский скриптец.
Дерево формируется в js, исходные данные можно из базы, одним запросом.
Запоминается то что открыто закрыто (COOKIE).
_http://destroydrop.com/javascripts/tree/

  Ответить  
 
 автор: necroms   (18.11.2008 в 21:02)   письмо автору
 
   для: mikha   (18.11.2008 в 19:39)
 

Спасибо за скрипт, он действительно суперский, надо будет посидеть поразбирать.

  Ответить  
 
 автор: Silentium   (25.11.2008 в 15:00)   письмо автору
 
   для: mikha   (18.11.2008 в 19:39)
 

А можно ли использовать этот скрипт но с видоизмененными картинками?

  Ответить  
 
 автор: mikha   (25.11.2008 в 15:24)   письмо автору
 
   для: Silentium   (25.11.2008 в 15:00)
 

Да. Там масса возможностей.

  Ответить  
Rambler's Top100
вверх

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