Autor Zpráva
szucs
Profil
Prosim o radu
http://www.skloruza.sk/skuska/11/

Ked sa ukaze na menu1, rozbali sa ale menu 2 sa odsunie do prava, so sa mi nepaci.
Ja som tam dopisal jedno urcenie sirky, lebo potrebujem, ked je sirka nejakeho podmenuvacsia,aby sa nezalamoval,ale aby sa zobrazil tak ako teraz, len bez toho, ze sa menu 2 posunie. Vdaka.
Fred
Profil
Nevím, jestli ti rozumím správně, jestli chceš vycentrovat ty vysouvací menu dej

#menu dd {
border: 1px solid yellow;
width:250px;
margin-left:-50px;
}
szucs
Profil
Skoda,nie je to ono.
Nechcem vycentrovat to vysuvacie menu. Potrebujem , ked napriklad je text vo vysuvacom menu trochu dlhsi ako v hlavnom menu, tak aby sa nezalomil,ale pokracoval dalej. Tvoja rada sice trochu zmensila rozdiel v medzere medzi polozkami hlavneho menu ale zaroven, odsunula polozku vysuvacieho menu tu dlhu vlavo mimo zobrazovanu oblast.
Fred
Profil
No to jsi měl říct, že se jedná o Jespr, to je jiná. Víceméně doporučuji jiné menu, nebo nechat stejnou šířku dt a dd, protože to IE nechápe, sice to jde pořešit pomocí js, ale
1/ je to moc kódu navíc
2/ JESPR pro změnu nechápe onmouseout na elementech vnořených do dl, nebo něco dělám blbě, takže je to poloviční oprava :-(
Níž je ten opravený kód, sice mám moc rád alsacreation , ale zkus si najít na webu Suckerfish dropdown.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html lang="en" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml"><head>

<title>Horizontal expanding menu</title><meta content="text/html; charset=iso-8859-1" http-equiv="Content-Type">

<script type="text/javascript">
<!--
window.onload=montre;
function montre(id) {
var d = document.getElementById(id);
for (var i = 1; i<=10; i++) {
if (document.getElementById('smenu'+i)) {document.getElementById('smenu'+i).style.display='none';}
}
if (d) {d.style.display='block';}
}

function ie1() {
document.getElementById('ie1').onmouseover=function(){document.getElem entById('ie2').style.marginLeft='-100px';}
document.getElementById('ie1').onmouseout=function(){document.getEleme ntById('ie2').style.marginLeft='0';}
}
function ie2() {
document.getElementById('ie2').onmouseover=function(){document.getElem entById('ie3').style.marginLeft='-100px';}
document.getElementById('ie2').onmouseout=function(){document.getEleme ntById('ie3').style.marginLeft='0';}
}
function ie3() {
document.getElementById('ie3').onmouseover=function(){document.getElem entById('ie4').style.marginLeft='-100px';}
document.getElementById('ie3').onmouseout=function(){document.getEleme ntById('ie4').style.marginLeft='0';}
}
var Opera = (navigator.userAgent.indexOf('Opera') != -1);
function loadIE(obj,evType,fn){
if (obj.attachEvent && !Opera){
var r=obj.attachEvent("on"+evType,fn);
return r;
}}
loadIE(window,'load',ie1);
loadIE(window,'load',ie2);
loadIE(window,'load',ie3);
//-->
</script>


<style type="text/css">
<!--
/* CSS issu des tutoriels www.alsacreations.com/articles */
body {
margin: 0;
padding: 0;
background: white;
font: 80% verdana, arial, sans-serif;
}
dl, dt, dd, ul, li {
margin: 0;
padding: 0;
list-style-type: none;
}
#menu {
position: absolute;
top: 0;
left: 0;
z-index:100;
width: 100%;
}
#menu dl {
float: left;
width: 150px;
}
#menu dt {
cursor: pointer;
text-align: center;
font-weight: bold;
background: #ccc;
border: 1px solid green;
width:150px;
}
#menu dd {
border: 1px solid yellow;
width:250px;
background:#fff;
position:relative;
left:-50px;
}

#menu li {
text-align: center;
background: #fff;
}
#menu li a, #menu dt a {
color: #000;
text-decoration: none;
display: block;
height: 100%;
border: 0 none;
}
#menu li a:hover, #menu dt a:hover {
background: red;
}
#site {
position: absolute;
z-index: 1;
top : 70px;
left : 10px;
color: #000;
background-color: blue;
padding: 5px;
border: 1px solid gray;
}
a {text-decoration: none;
color: black;
color: #222;
}

-->
</style></head>
<body>

<div id="menu">
<dl><dt onmouseover="javascript:montre();"><a title="Retour ŕ l'accueil" href="">Accueil</a></dt></dl>

<dl id="ie1"><dt onmouseover="javascript:montre('smenu1');">Menu 1</dt><dd id="smenu1" style="display: none;">
<ul>
<li><a href="#">Sous-Menu 1.1 dg bdb bcb</a></li>
<li><a href="#">Sous-Menu 1.2</a></li>
<li><a href="#">Sous-Menu 1.3</a></li>
<li><a href="#">Sous-Menu 1.4</a></li>
<li><a href="#">Sous-Menu 1.5</a></li>
<li><a href="#">Sous-Menu 1.6</a></li>
</ul>
</dd></dl>


<dl id="ie2"><dt onmouseover="javascript:montre('smenu2');">Menu 2</dt><dd id="smenu2" style="display: none;">
<ul>
<li><a href="#">Sous-Menu 2.1</a></li>
<li><a href="#">Sous-Menu 2.2</a></li>
<li><a href="#">Sous-Menu 2.3</a></li>
<li><a href="#">Sous-Menu 2.4</a></li>
</ul>
</dd></dl>

<dl id="ie3"><dt onmouseover="javascript:montre('smenu3');">Menu 3</dt><dd id="smenu3" style="display: none;">
<ul>
<li><a href="#">Sous-Menu 3.1</a></li>
<li><a href="#">Sous-Menu 3.2</a></li>
<li><a href="#">Sous-Menu 3.3</a></li>
<li><a href="#">Sous-Menu 3.4</a></li>
<li><a href="#">Sous-Menu 3.5</a></li>
</ul>
</dd></dl>

<dl id="ie4"><dt onmouseover="javascript:montre('smenu4');">Menu 4</dt><dd id="smenu4" style="display: none;">
<ul>
<li><a href="#">Sous-Menu 4.1</a></li>
<li><a href="#">Sous-Menu 4.2</a></li>
<li><a href="#">Sous-Menu 4.3</a></li>
</ul>
</dd></dl>

</div>
</body>
</html>
szucs
Profil
Dakujem pekne za ochotu.

Mam par otazok ak mozem, pozeral som si webu Suckerfish dropdown,

Skusal som nastavit tomu textu, co sa nachadza pod menu vysku a nasledne overflow:auto, a menu prestalo fungovat

Dalsia otazka,pravdepodobne je niekde chyba v tom kode, co si uviedol, lebo Javascript hlasi chybu.
Bohuzial ja som to nedokazal najst
Diki
Fred
Profil
Co ti hlásí za chybu?
szucs
Profil
file://localhost/C:/index.html
Unknown context
Syntax error while loading (line 13)
').onmouseover=function(){document.getElem entById('ie2').st
---------------------------------------------------^

file://localhost/C:/index.html
Event thread: onmouseover
Error:
name: ReferenceError
message: Statement on line 1: Reference to undefined variable: No such variable 'montre'
Backtrace:
In unknown script
montre("smenu1");
At unknown location
{event handler trampoline}

file://localhost/C:/index.html
Event thread: onmouseover
Error:
name: ReferenceError
message: Statement on line 1: Reference to undefined variable: No such variable 'montre'
Backtrace:
In unknown script
montre("smenu1");
At unknown location
{event handler trampoline}
centi
Profil
No je tam syntaktická chyba. document.getElem entById musí byť toťiž napísané spolu :-)
habendorf
Profil
centi: ale houby, to se rozhazuje až tady
Fred
Profil
centi No to je pak těžký ;-) , to ctrl+c a ctrl+v + fórum se někdy holt cestou rozbije.
szucs No nevím, tuhle mušku jsi, z toho ale mohl vyčíst, samozřejmně odstraň tu mezeru document.getElementById
centi
Profil
habendorf
Je mi jasné, že to sem Fred kopíroval správne a že sa to rozbilo až tu, ale szucs si to asi nevšimol.
Fred
Profil
Koukám že to je ve všech těch třech funkcích ie1,ie2,ie3 takže si odstraň všechny mezery ve výrazu getElementById má to být dohromady.
habendorf
Profil
centi jj, pořádně se nepodívám o co jde a pak jsem za troubu, dobře mi tak. sorry
Fred
Profil
habendorf Nejseš rozbilo se to tady. BTW budu muset udělat něco z rychlostí psaní. V 12:36:48 jsem musel začít psát, protože Tvá odpověď tam nebyla a ve 12:39:37 jsem to vložil, to docela dost času na dvě větičky, takže je to těžký i se mnou ;-) A navíc z toho občas vznikají nedorozumění.
habendorf
Profil
Fred: Já vím že se to rozbilo až tady. Ale kdybych si pořádně přečetl toto

').onmouseover=function(){document.getElem entById('ie2').st
---------------------------------------------------^


tak je mi jasný, že si to szucs neopravil. Čekal jsem, že si to samozřejmě opraví. Ale to už je to dost OT.
szucs
Profil
Dakujem, niekedy sa mi stane, ze nevidim absolutne samozrejmosti.
Toto téma je uzamčeno. Odpověď nelze zaslat.

0