Программирование > JavaScript & JScript
ПОЧЕМУ меню в IE работает, а в NN нет!?
(1/1)
assessor.ru:
Прошу помочь. В IE нижеприведенное всплывающее меню работает, в NN нет. Т.е. меню не всплывает. Пробую в IE6.0 и NN6.2
------------------------------------
var ie4, nn4, nn6;
var rX, lX, tY, bY;
var zi=100;
ie4 = nn4 = nn6 = 0;
if(document.all)
{ie4=1; document.body.onmousemove=updateIt;}
if(document.layers)
{nn4=1; window.captureEvents(Event.MOUSEMOVE); window.onmousemove=updateIt;}
if(document.getElementById&&!ie4)
{nn6=1; document.body.onmousemove=updateIt;}
function dropit(e,oIEorNN6s,sOneNN,xMenu){
if(ie4){
oneIE = oIEorNN6s;
if (window.themenu&&themenu.id!=oneIE.id)
themenu.style.visibility="hidden";
themenu=oneIE;
themenu.style.left=document.body.scrollLeft+event.clientX-event.offsetX;
themenu.style.top=document.body.scrollTop+event.clientY-event.offsetY+15;
lX=themenu.style.posLeft-document.body.scrollLeft;
rX=lX+themenu.offsetWidth;
tY=themenu.style.posTop-document.body.scrollTop-25;
bY=themenu.offsetHeight+tY+25;
if (themenu.style.visibility=="hidden"){
themenu.style.visibility="visible";
themenu.style.zIndex=zi++;
}
}
if(nn4){
if (window.themenu&&themenu.id!=eval(sOneNN).id)
themenu.visibility="hide";
themenu=eval(sOneNN);
if (themenu.visibility=="hide")
themenu.visibility="show";
themenu.zIndex++;
themenu.left=e.pageX-e.layerX;
themenu.top=e.pageY-e.layerY+14;
lX=themenu.left;
rX=lX+themenu.clip.width;
tY=themenu.top-25;
bY=themenu.top+themenu.clip.height;
return false;
}
if(nn6){
oneNN = document.getElementById(oIEorNN6s); //eval(sOneNN);
if (window.themenu&&themenu.id!=oneNN.id)
themenu.style.visibility="hidden";
themenu=oneNN;
themenu.style.left=xMenu;
themenu.style.top=146;
lX=parseInt(themenu.style.left);
rX=lX+themenu.offsetWidth;
tY=parseInt(themenu.style.top);
bY=themenu.offsetHeight+tY+25;
if (themenu.style.visibility=="hidden"){
themenu.style.visibility="visible";
themenu.style.zIndex=zi++;
}
}
}
function hidemenu (whichone){
if(ie4) hidemenu1 (whichone);
if(nn6) hidemenu3();
if(nn4) hidemenu2();
}
function hidemenu1(whichone){
if(window.themenu)
themenu.style.visibility="hidden";
hidemenu2();
}
function hidemenu2(){
if(typeof(themenu)!="undefined")
themenu.visibility="hide";
}
function hidemenu3(){
if (themenu.style.visibility=="visible")
themenu.style.visibility="hidden";
}
function updateIt(oneIE){
var x,y
if(ie4){x=window.event.clientX;
y=window.event.clientY;
if(x>rX || xbY+1 || yrX || xbY+1 || yrX || xbY || y
Макс:
assessor.ru
напиши автору скрипта. Эту кучу куда врятле кто захочет разбирать.
assessor.ru:
Пока сам не займешся, вряд ли кто-то пошевелится. Раз мне надо, значит делай сам. Вот выделил пару дней, заработало меню и в Нетскейпе. Особо-то и не нужно было. Просто несколько "нетскейповцев" жаловались, что меню не работает и навигация неудобна.
--------------------------------------
Изменил для nn6
themenu.style.top=146;
на
themenu.style.top=82;
--------------------------------------
Это не влияло на работу, просто чтобы меню выводилось с определеной позиции от верха экрана. А у меня шапка верха высотой 82 пикселя.
--------------------------------------
Изменил для nn6
themenu.style.left=xMenu
на
themenu.style.left=xMenu - 200;
--------------------------------------
Когда захочешь, любая программа заработает, тем более что программирую с 1977 года еще с ламповых ЭВМ.
Работу меню можно посмотреть у меня на www.assessor.ru
Навигация
Перейти к полной версии