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

HTML+CSS+JavaScript

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

 

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

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

тема: Выпадающее меню. Караул, погибаю....
 
 автор: Ramzero   (30.11.2008 в 22:59)   письмо автору
 
 

Помогите найти выпадающее меню, которое бы работало в IE, в том числе в версии 7, в Опере, Сафари и Файерфоксе.
За неделю перепробовал десятки скриптов и на DIV, и на яве... Ничего не получается. Я не могу потратить всю жизнь на это меню. Выручайте, друзья.

У меня есть подобного рода конструкция, которая наотрез отказывается работать в IE 7.

<script>
startList = function() {
if (document.all&&document.getElementById) {
navRoot = document.getElementById("nav");
for (i=0; i<navRoot.childNodes.length; i++) {
node = navRoot.childNodes[i];
if (node.nodeName=="LI") {
node.onmouseover=function() {
this.className+=" over";
}
node.onmouseout=function() {
this.className=this.className.replace »
(" over", "");
}
}
}
}
}
window.onload=startList;
</script>
<style>
ul {
margin: 0;
padding: 0;
list-style: none;
width: 150px;
}
ul li {
position: relative;
}
li ul {
position: absolute;
left: 149px;
top: 0;
display: none;
}
li:hover ul, li.over ul {
display: block;
}

ul li a {
display: block;
text-decoration: none;
color: #777;
background: #fff;
padding: 5px;
border: 1px solid #ccc;
border-bottom: 0;
}
/* Fix IE. Hide from IE Mac \*/
* html ul li { float: left; }
* html ul li a { height: 1%; }
/* End */
/* Fix IE. Hide from IE Mac \*/
* html ul li { float: left; height: 1%; }
* html ul li a { height: 1%; }
/* End */

ul {
margin: 0;
padding: 0;
list-style: none;
width: 150px;
border-bottom: 1px solid #ccc;
}

</style>

<ul id="nav">
<li><a href="#">Home</a></li>
<li><a href="#">About</a>
<ul>
<li><a href="#">History</a></li>
<li><a href="#">Team</a></li>
<li><a href="#">Offices</a></li>
</ul>
</li>
<li><a href="#">Services</a>
<ul>
<li><a href="#">Web Design</a></li>
<li><a href="#">Internet
Marketing</a></li>
<li><a href="#">Hosting</a></li>
<li><a href="#">Domain Names</a></li>
<li><a href="#">Broadband</a></li>
</ul>
</li>
<li><a href="#">Contact Us</a>
<ul>
<li><a href="#">United Kingdom</a></li>
<li><a href="#">France</a></li>
<li><a href="#">USA</a></li>
<li><a href="#">Australia</a></li>
</ul>
</li>
</ul>

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

<script>
navHover = function() {
var lis = document.getElementById("navmenu-ha").getElementsByTagName("LI");
for (var i=0; i<lis.length; i++) {
lis[i].onmouseover=function() {
this.className+=" iehover";
}
lis[i].onmouseout=function() {
this.className=this.className.replace(new RegExp(" iehover\\b"), "");
}
}
}
if (window.attachEvent) window.attachEvent("onload", navHover);
</script>

ul#navmenu-ha ul
{
margin: 0;
border: 0 none;
padding: 0;
width: 260px;
list-style: none;
display: none;
position: absolute;
top: 20px;
left: 0;
border-left: 0px solid #105BAC;
border-right: 0px solid #105BAC;
border-bottom: 0px solid #105BAC;
Z-INDEX: 2;
}



ul#navmenu-ha ul li
{
width: 260px;
float: left;
Z-INDEX: 2;

}


/* Root Menu */
ul#navmenu-ha a
{
padding: 0px 12px 0 12px;
float: none !important;
/*For Opera*/
/*For IE*/
display: block;
background: #105BAC;
color: #FFF;
font: bold 12px/22px Verdana, Arial, Helvetica, sans-serif;
text-decoration: none;
Z-INDEX: 2;
/*For IE*/
}

<style>
/* Root Menu Hover Persistence */
ul#navmenu-ha a:hover,
ul#navmenu-ha li:hover a,
ul#navmenu-ha li.iehover a
{
background: #105BAC;
color: #fff;
}


/* 2nd Menu */
ul#navmenu-ha li:hover li a,
ul#navmenu-ha li.iehover li a {
float: none;
background: #105BAC;
color: #FFF;
Z-INDEX: 2;
}
/* 2nd Menu Hover Persistence */
ul#navmenu-ha li:hover li a:hover,
ul#navmenu-ha li:hover li:hover a,
ul#navmenu-ha li.iehover li a:hover,
ul#navmenu-ha li.iehover li.iehover a {
background: #105BAC;
color: #FFF;
Z-INDEX: 2;
}
ul#navmenu-ha ul ul,
ul#navmenu-ha ul ul ul {
display: none;
position: absolute;
top: 0;
left: 300px;
}
/* Do Not Move - Must Come Before display:block for Gecko */
ul#navmenu-ha li:hover ul ul,
ul#navmenu-ha li:hover ul ul ul,
ul#navmenu-ha li.iehover ul ul,
ul#navmenu-ha li.iehover ul ul ul {
display: block;
}
ul#navmenu-ha li:hover ul,
ul#navmenu-ha ul li:hover ul,
ul#navmenu-ha ul ul li:hover ul,
ul#navmenu-ha li.iehover ul,
ul#navmenu-ha ul li.iehover ul,
ul#navmenu-ha ul ul li.iehover ul {
display: block;
}
</style>

<ul id=navmenu-ha>
echo " <li><a class=a href=#>".$menu['name']."
<ul>
".$menu['body']." ( здесь <li></li> подставится в БД, иначе не работает в Опере и Сафари )
</ul>
</li></a>";
</ul>

  Ответить  
 
 автор: sl1p   (01.12.2008 в 00:13)   письмо автору
 
   для: Ramzero   (30.11.2008 в 22:59)
 

http://beholder-eye.info/example/dropdown/

  Ответить  
 
 автор: Ramzero   (01.12.2008 в 02:23)   письмо автору
 
   для: sl1p   (01.12.2008 в 00:13)
 

Большое спасибо:)

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

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