Страница 1 из 1
Проблемма с меню в Mozilla Firefox
Добавлено: 10 окт 2008, 22:16
InCoob
есть такое меню (выводится при наведение на фрейм мышой, смещается вслед за полосой прокрутки)
http://www.siberia.jino-net.ru/1.html
работает в IE и не работает в Мозилле (в связи с использованием css expression() альтернатива - java script)
однако, замена
TOP: expression(document.body.scrollTop + document.body.clientHeight - offsetHeight)
на
document.getElementById('fnav').style.top=(documen t.body.scrollTop + document.body.clientHeight - document.getElementById('fnav').offsetHeight);
дает некорректный результат
помогите разобраться и поправить
Re: Проблемма с меню в Mozilla Firefox
Добавлено: 13 окт 2008, 10:38
__Yuri__
Во-первых, определяй тип браузера типа так:
var is_ie=((lay_agt.indexOf("msie") != -1) && (lay_agt.indexOf("opera") == -1));
var is_opera7=(lay_agt.indexOf("opera") != -1 && ver>=7);
и далее используй разный код для IE и FF:
var scroll_y=0; // string scrollTop
var scroll_x=0; // string scrollLeft
var iW=760; // string clientWidth
var iH=500; // string clientHeight
// Размеры рабочей области окна
// MSIE - document.body.clientWidth, clientHeight
// Netscape, Mozilla, Opera - innerWidth, innerHeight
if(is_ie)
{
iW = "document.body.clientWidth";
iH = "document.body.clientHeight";
}
else
{
iW = "window.innerWidth";
iH = "window.innerHeight";
}
// Прокрутка (scrolling)
// MSIE, Opera >=7 - document.body.scrollLeft, scrollTop
// Netscape, Mozilla, Opera 5, 6 - pageXOffset, pageYOffset
scroll_y=scroll_x="parseInt(";
if(is_ie || is_opera7)
{
scroll_y += "document.body.scrollTop)";
scroll_x += "document.body.scrollLeft)";
}
else
{
scroll_y += "window.pageYOffset)";
scroll_x += "window.pageXOffset)";
}
Потом типа так слой двигай:
/**********************************/
function moveLayer(name, x, y)
/*********************************/
{
var temp=y + eval(scroll_y);
document.getElementById(name).style.top = temp + "px";
temp=x + eval(scroll_x);
document.getElementById(name).style.left = temp + "px";
}
Во-вторых - при отладке используй строку состояния окна браузера или allert для вывода значений твоих переменных - вслепую от начала до конца программу начисто без ошибок написать даже на JavaScript невозможно.
Re: Проблемма с меню в Mozilla Firefox
Добавлено: 16 дек 2008, 18:03
Zloikasper
а мне помогите плиз не работает меню с ява скриптом
<script language="javascript" type="text/javascript">
function Show(x) {document.getElementById('nav' + x).style.display = 'block';}
function Close(x) {document.getElementById('nav' + x).style.display = 'none';}
</script>
<table background="img/fon.jpg" width="1600" height="558">
<tr>
<td>
<div id="menu">
<div id="navigation" style="position: relative; z-index: 2; ">
<ul>
<li class="blue" onMouseMove="Close(1);Close(2);"><div id="menuosn"><a href="" class="menu">Об организации</a></div></li>
<li class="blue" style="margin-left:35px;" onMouseMove="Close(1);Close(2);"><div id="menuosn"><a href="" class="menu">Контакты</a></div></li>
<li class="blue" style="margin-left:60px;" onmouseover="Show(2);" onMouseMove="Close(1);"><div id="menuosn"><a href="" class="menu">Судьи</a></div></li>
<li class="blue" style="margin-left:35px;" onmouseover="Show(1);" onMouseMove="Close(2);"><div id="menuosn"><a href="" class="menu">Конкурсы</a></div></li>
<li class="blue" style="margin-left:50px;" onMouseMove="Close(1);Close(2);"><div id="menuosn"><a href="" class="menu">Новости</a></div></li>
<li class="blue" style="margin-left:40px;" onMouseMove="Close(1);Close(2);"><div id="menuosn"><a href="" class="menu">Гостевая книга</a></div></li>
</ul>
</div>
<div id="kubok" style="position: relative; z-index: 3; top: -50px; left: -80px;">
<img src="img/kubok.gif" alt="" border="0">
</div>
<div id="nav2" style="margin-top:-203px;">
<ul>
<li class="red" style="margin-right: 26px;"><div id="menuosn2"><a href="" class="menu">Почетные </a></div></li>
<li class="red"><div id="menuosn2"><a href="" class="menu">Действительные</a></div></li>
<li class="red" style="margin-right: 76px;"><div id="menuosn2"><a href="" class="menu">Стажеры</a></div></li>
<li class="red" style="margin-right: 36px;"><div id="menuosn2"><a href="" class="menu">Как стать</a></div></li>
</ul>
</div>
<div id="nav1" style="margin-top:-203px;">
<ul>
<li class="red"><div id="menuosn2"><a href="" class="menu">Дата и условия</a></div></li>
<li class="red"><div id="menuosn2"><a href="" class="menu">Результаты конкурсов</a></div></li>
<li class="red"><div id="menuosn2"><a href="" class="menu">Работы</a></div></li>
</ul>
</div>
</div>
</td>
</tr>
</table>
Что нужно поправить?