проблемы с меню в opera
Сделал меню. При наведении на элемент, раскрывается список. В opera, при ведении курсора мыши по раскрытому списку (видимо между строками списка), он исчезает :( в остальных браузерах нормально все.
Получается, что opera воспринимает переход курсора от одной строки к другой строке списка как onmouseout и закрывает его - теряется контакт с элементом. Что тут не так и куда смотреть чтоб исправить? <td id="menu06" class="menu_list" onmouseover='showl(6, 1);' onmouseout='showl(6, 2);'"><a><b> <a href="">меню</a> <br></b></a> <div class="menu_block" onmouseover='showl(6, 1);' onmouseout='showl(6, 2);' style="display:none;" id="podmenu_06"> <table class="menu_li"> <tr> <td class="menu_li"><a href="">список1</a></td> </tr> <tr> <td class="menu_li"><a href="">список2</a></td> </tr> <tr> <td class="menu_li"><a href="">список3</a></td> </tr> </table> </div> </td>
function showl() // раскрытие и закрытие списка
{
if (window.innerWidth)
{
var w=window.innerWidth; var h=window.innerHeight;} else {if (document.all){var w=document.all('q').clientWidth; w=document.documentElement.clientWidth; var h=document.all('q').clientHeight; h=document.documentElement.clientHeight;}
}
if(arguments[1]==1) //------------
{
if(arguments[0]==6)
{
document.getElementById('podmenu_06').style.display = "block";
document.getElementById('podmenu_06).style.left = elementPos('menu06').left-elementPos('menu01').left + "px";
}
}
else //------------
{
if(arguments[0]==1) {document.getElementById('podmenu_01').style.display="none";}
}
}
|
не знаю как у вас но у меня ничего не закрывается:
<style type="text/css">
.menu_item div {
position: absolute;
display: none;
}
.menu_item:hover div {
display: block;
}
</style>
<table border="1">
<tr>
<td class="menu_item"><a><b> <a href="">меню</a> <br></b></a>
<div class="menu_block">
<table class="menu_li">
<tr>
<td class="menu_li"><a href="">список1</a></td>
</tr>
<tr>
<td class="menu_li"><a href="">список2</a></td>
</tr>
<tr>
<td class="menu_li"><a href="">список3</a></td>
</tr>
</table>
</div>
</td>
</tr>
</table>
|
закрытие срабатывает - неприятная штука!
|
Semen,
переделайте меню с использованием CSS без скриптов, и все будет норм работать.. а то что опера отрабатывает уход с элемента, это вполне нормально, ведь когда вы наводите мышь на другой элемент, событие ухода и должно сработать. И дело тут далеко не в браузере, либо делайте задержку между перед закрытием, и очищайте задержку если срабатывает открытие, либо лучше всего переделать на CSS. Оно и проще и работоспособнее. |
ок спасибо за совет и направление буду делать...
|
Semen,
Добавьте в css красным <style type="text/css"> .menu_item div { position: absolute; display: none; } .menu_item:hover div { display: block; } table.menu_li{ padding-top:20px; margin-top:-20px; } </style> |
ок попробую спасибо
Поступил по совету devote - сделал раскрывающийся список в css - отлично работает и настроить все намного легче! :thanks: |
Подскажите еще пожалуйста.
Вот я сделал раскрывающееся меню на css. Работает так как нужно во всех браузерах кроме ИЕ. В ИЕ список подменю просто улетает вправо. Как эту проблему можно исправить?
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title> New Document </title>
<style>
li.menu_list {
background-image: url("/icon/activ_fon_url.png");
background-color: none;
font: 9pt Verdana;
line-height: 1.0;
font-weight: bold;
font-style: normal;
color: #7f7f7f;
border: solid 0px;
/*background-color:#bedfce;*/
border: solid 1px #9ac8b0;
border-top-color:#f1efea;
border-left-color:#f1efea;
box-shadow: 1px 1px 4px #6fa98b;
}
/* style for style for menu items - hover */
li.menu_list:hover {
background-image: url("/icon/afon_url.png");
background-color: none;
vertical-align: middle;
font: 9pt Verdana;
line-height: 1.0;
font-weight: bold;
font-style: normal;
color: red;
border: solid 0px;
/*background-color:#d6e8f0;*/
border: solid 1px #9ac8b0;
border-top-color:#f1efea;
border-left-color:#f1efea;
box-shadow: 1px 1px 4px #6fa98b;
}
li.li_m {
opacity: 0.7;
font:8pt Verdana;
font-weight: ;
line-height: 1.0;
color: #827053;
text-align: center;
padding: 0;
width: auto;
height: auto;
background-color:#bedfce;
border: solid 1px #9ac8b0;
border-top-color:#f1efea;
border-left-color:#f1efea;
box-shadow: 1px 1px 8px #6fa98b;
}
li.li_m:hover {
opacity: 0.8;
background-image: url("/icon/afon_url.png");
font:8pt Verdana;
font-weight: ;
line-height: 1.0;
color: #e46161;
text-align: center;
padding: 0;
width: auto;
height: auto;
background-color:#d6e8f0;
border: solid 1px #9ac8b0;
border-top-color:#f1efea;
border-left-color:#f1efea;
box-shadow: 2px 2px 8px #6fa98b;
}
td.vz {
width: auto;
height: 24px;
margin: 0px;
}
td.va {
text-align: left;
width: 140px;
height: 24px;
margin: 0px;
}
ul#menu_list ul {
margin: 0px 0px 0px 0px;
padding: 4px 0px 0px 0px;
}
ul#menu_list li {
margin: 0px;
padding: 0px;
list-style-type: none;
width: auto;
float: left;
position: relative;
}
ul#menu_list li ul {
float: left;
position: absolute;
width: 12em;
}
ul#menu_list li ul {
display: none;
}
ul#menu_list li:hover ul {
display: block;
}
</style>
</head>
<body>
<ul id="menu_list" >
<a class="menu_link1" href=""><li class="menu_list"><table><tr><td class="vz"> com </td></tr></table></a>
<ul>
</ul>
</li>
<a class="menu_link1" href=""><li class="menu_list"><table><tr><td class="vz"> форум </td></tr></table></a>
<ul>
<a href=""><li class="li_m"><table><tr><td class="va">регистрация</td></tr></table></li></a>
<a href=""><li class="li_m"><table><tr><td class="va">решение</td></tr></table></li></a>
<a href=""><li class="li_m"><table><tr><td class="va">жизнь</td></tr></table></li></a>
</ul>
</li>
<a class="menu_link1" href="#"><li class="menu_list"><table><tr><td class="vz"> раздел №1 </td></tr></table></a>
<ul>
<a href="1"><li class="li_m"><table><tr><td class="va">подраздел №1</td></tr></table></li></a>
<a href="2"><li class="li_m"><table><tr><td class="va">подраздел №1</td></tr></table></li></a>
<a href="3"><li class="li_m"><table><tr><td class="va">подраздел №1</td></tr></table></li></a>
<a href="4"><li class="li_m"><table><tr><td class="va">подраздел №1</td></tr></table></li></a>
</ul>
</li>
</ul>
</body>
</html>
|
Semen,
Пробуйте добавить красным <style> a.menu_link1 { /*display:inline-block;*/ } li.menu_list { display:inline-block; background-image: url("/icon/activ_fon_url.png"); background-color: none; font: 9pt Verdana; |
Цитата:
|
devote,
Не понимает ток для div(и то до ИE8) метод борьбы - div обёртываем в span с этим указанием, - для остальных элементов - норма(на менюшках прост долго сидел => http://htmlbook.ru/css/display |
неполучается с display:inline-block;
|
Цитата:
ИE7тестовая http://hostjs-mybb2011.narod.ru/Semen.htm |
неработает на моем IE
но в любом случае спасибо - буду разбираться, может что получится http://uploads.ru/?v=t8MLG.jpg |
Цитата:
|
А сейчас ?
http://hostjs-mybb2011.narod.ru/Semen.htm |
нет - так же
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title> New Document </title>
<style>
#menu_list {
margin: 4px 0 0 0;
padding: 0;
}
#menu_list li {
position: relative;
list-style-type: none;
float: left;
background-image: url("/icon/activ_fon_url.png");
background-color: none;
border: solid 0px;
/*background-color:#bedfce;*/
border: solid 1px #9ac8b0;
border-top-color:#f1efea;
border-left-color:#f1efea;
box-shadow: 1px 1px 4px #6fa98b;
}
#menu_list li:hover {
background-image: url("/icon/afon_url.png");
background-color: none;
border: solid 0px;
/*background-color:#d6e8f0;*/
border: solid 1px #9ac8b0;
border-top-color:#f1efea;
border-left-color:#f1efea;
box-shadow: 1px 1px 4px #6fa98b;
}
#menu_list li a {
font: 9pt Verdana;
line-height: 1.0;
font-weight: bold;
font-style: normal;
color: #7f7f7f;
display: block;
height: 19px;
text-decoration: none;
padding: 5px 4px 0 4px;
}
#menu_list li:hover a {
color: red;
}
#menu_list li ul {
display: none;
position: absolute;
padding: 0;
margin: 0;
left: 0;
top: 100%;
}
#menu_list li ul li {
position: relative;
opacity: 0.7;
text-align: left;
padding: 0;
background-color:#bedfce;
border: solid 1px #9ac8b0;
border-top-color:#f1efea;
border-left-color:#f1efea;
box-shadow: 1px 1px 8px #6fa98b;
list-style-type: none;
display: block;
clear: both;
width: 100%;
/* for IE7 */
width: expression((this.parentNode.offsetWidth-2)+"px");
}
#menu_list li ul li:hover {
opacity: 0.8;
background-image: url("/icon/afon_url.png");
color: #e46161;
background-color:#d6e8f0;
box-shadow: 2px 2px 8px #6fa98b;
}
#menu_list li:hover ul li a {
display: block;
height: 19px;
color: #827053;
font-weight: normal;
font: 8pt Verdana;
white-space: nowrap;
}
#menu_list li ul li:hover a {
color: #e46161;
}
#menu_list li:hover ul {
display: block;
clear: both;
}
</style>
</head>
<body>
<ul id="menu_list" >
<li>
<a href="">com</a>
</li>
<li>
<a href="">форум</a>
<ul>
<li><a href="">регистрация</a></li>
<li><a href="">решение</a></li>
<li><a href="">жизнь</a></li>
</ul>
</li>
<li>
<a href="">раздел №1</a>
<ul>
<li><a href="">подраздел №1</a></li>
<li><a href="">подраздел №2</a></li>
<li><a href="">подраздел №3</a></li>
<li><a href="">подраздел №4</a></li>
</ul>
</li>
</ul>
</body>
</html>
|
devote - спасибо большое, работает! Буду разбираться как :)
|
devote,
:blink: У меня ИЕ 7 в XP зависает и не реагирует ни на какие клавиши http://hostjs-mybb2011.narod.ru/Semen.htm без width: expression(this.parentNode.offsetWidth + "px"); - Пашет http://hostjs-mybb2011.narod.ru/Semen2.htm Semen, Ксать а второй Вариант - точно так же, как изначально ? (В ИЕ |
Цитата:
|
Цитата:
width: expression((this.parentNode.offsetWidth-2)+"px"); |
devote,
http://hostjs-mybb2011.narod.ru/Semen.htm работает! Ксать на счёт inline-block - я правду сказал Цитата:
|
| Часовой пояс GMT +3, время: 23:38. |