Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Меню на Javascript (https://javascript.ru/forum/dom-window/2904-menyu-na-javascript.html)

pasha4ur 24.02.2009 18:15

Меню на Javascript
 
сем привет. :)

Есть время свободное и захотел сайт сделать.
С версткой НТМЛ проблем нет(кроме блочной, которую я не знаю), но захотелось сделать менюшку с меняющимися кнопками.

Есть 2 варианта:
1. Сделать кнопки рисунками, но надо будет рисовать по 2 кнопки с текстом, а если потом добавлять, то еще и дорисовывать. + сайт будет много весить.
2. Менять фоновые изображения в каждой клетке меню при наведении.

Я в ДжаваСкриптах не шарю. Нашел в Интернет только, как фоновые цвета менять при наведении. Я её отредактировал, но что-то с картинками не получается. Подскажите, где подправить?

<script type="text/JavaScript">
<!--

function newColor(idCell1) { 
eval('document.all.'+idCell1+'.style.background-image= "url(images/hov_gr_but.jpg)"'); 
eval('document.getElementById("' + idCell1 + '").style.background-image= "url(images/hov_gr_but.jpg)"'); 
} 

function backColor(idCell1) { 
eval('document.all.'+idCell1+'.style.background-image = "url(images/hov_bl_but.jpg)"'); 
eval('document.getElementById("' + idCell1 + '").style.background-image = "url(images/hov_bl_but.jpg)"'); 
} 
//-->
</script>
<table width="163" cellpadding="10" cellspacing="0" align="center">
<tr height="44" onMouseOver="newColor('c1')" onMouseOut="backColor('c1')">
<td id="c1" background="./images/hov_gr_but.jpg">1</td>
</tr>
<tr height="44">
<td background="./images/hov_bl_but.jpg">2</td>
</tr>
<tr height="44">
<td background="./images/hov_bl_but.jpg">3</td>
</tr>
<tr height="44">
<td background="./images/hov_bl_but.jpg">4</td>
</tr>
<tr height="44">
<td background="./images/hov_bl_but.jpg">5</td>
</tr>
</table>

При наведении пункт меню становится зеленым

П.С. Пишу уже на третий форум (теперь специализированный). Нигде так и не помогли :(

Андрей Параничев 24.02.2009 18:29

function newColor(idCell1) { 
   document.getElementById(idCell1).style.backgroundImage= "url(images/hov_gr_but.jpg)"; 
} 
 
function backColor(idCell1) { 
   document.getElementById(idCell1).style.backgroundImage= "url(images/hov_bl_but.jpg)";
}

pasha4ur 25.02.2009 11:29

Большое спасибо.

А можно вкратце, почему мой вариант не работаьл? :)

Gvozd 25.02.2009 12:15

style.background-image
в CSS есть такое свойство.а вот в JS нету.в JS нельзя использовать в именнах переменных и свойств знак "-"

поэтому, когда JS обращается к свойствам CSS через style, то дефисы удаляются, а следующие за ними буквы пишутся заглавными
в данном случае
backgroundImage

PS это далеко не единственный минуч вашего скрипта изначального.
он ужасен
неизвестно для чего используются eval-ы.к тому же обращение к document.all есть не везде, и не везде оно одинаково работает.
а там, где он есть он в лучшем случае эквивалентен втиорой строчке

pasha4ur 25.02.2009 15:26

Спасибо.:)
Лучше и не брать за эти скрипты, а использовать готовые скрипты. %)

Gvozd 25.02.2009 19:47

что не брать?
может быть вы хотели сказать "не братся"?

тогда вы будете на каждую строчку JS обращатся на форум за помощью по видоизменению.
это всем очень быстро надоест.

pasha4ur 27.02.2009 12:18

Вот пример сайта http://pasha4ur.narod.ru/. Правда лучше всего открывать в Опере. Я просто старый скрипт из книжки вставил и
за курсором мышки шарики двигаются только в Опере. В ФФ они тупо лежат внизу, а Интернет Эксплоуер начинает тупо тормозить весь комп.

Есть еще пару вопрос, но думаю не стоит создавать темы по ним (а то тупые темки получаться от чайника :)))):
1. Можете дать ссылку, где есть много бесплатных джава-скриптов? А то я на диал-апе уже запарился искать %)
2. Искал в Интернете, но так и не нашел учебник/урок, чтобы понять, что такое блочная верстка. Но это же намного круче тбличной? не подкинете парочку? :)
3. Хотел сделать сайт полупрозрачным (рисунки фоновые в PNG), но в Эксплоуере все же неправильно отображается. Нашел решение для обычных рисунков. Нет ли уже какого-нибудь скрипта, чтобы и фоновые картинки нормально отображались??

Большое спасибо за ответы!!!

Gvozd 27.02.2009 16:58

1.бесплатные скрипты лучше брать из головы.
потому что на большинстве сайтов с бесплатными скриптами, они устаревши до ужаса.
не знаю сайтов с нормальными скриптами.
вот тут есть , но старье.Если будете использовать, не обращайтесь потом с "скрипт не работает"/"надо переделать" .тут мало у кого есть желание копатся в таком некачественном продукте.
вывод:изучайте сами, и пишите.мы поможем если что.такие задачи нам интереснее разбирать как правило, чем бесплатный хлам
2.тут вроде есть статьи по поводу верстки слоями.не читал,и оченить не могу, так как версткой плотно не занимаюсь
3.не знаю.

Kolyaj 27.02.2009 17:59

Цитата:

Сообщение от pasha4ur
3. Хотел сделать сайт полупрозрачным (рисунки фоновые в PNG), но в Эксплоуере все же неправильно отображается. Нашел решение для обычных рисунков. Нет ли уже какого-нибудь скрипта, чтобы и фоновые картинки нормально отображались??

pngfix
Лично я бы посоветовал решение Виталия Харисова http://company.yandex.ru/experience/ доклад "CSS Framework своими руками: практика"

pasha4ur 27.02.2009 23:15

Gvozd, сорри не могу тебе "+" добавить. Спасибо. Пишет какую-то фигню: "Вы должны поставить кому-то еще перед....."

У меня с программированием что-то совсем тяжко идет. Я больше гумманитарий(в школе учился на медицинском, а в техникум "попал" на программиста, но нас там ничему и не учили). НТМЛ правда дался легко!

Kolyaj, спасибо! Буду читать. Очень хочется прозрачным сделать!

Не можете подсказать, что сделать, чтобы шарики за курсором в ФФ и ИЕ нормально двигались?


Часовой пояс GMT +3, время: 00:31.