Dobrý den, na svém webu mám JavaScriptové menu, které jsem získal na internetu, ale potřeboval bych script přepsat tak aby šel použít i vertikálně. Sám moc zkušeností s JS nemám. Jestli by byl někdo ochotný i přihodit nastavení CSS na kterém by to mělo taky záviset.
JS:
var menuSlider=function(){
var m,e,g,s,q,i; e=[]; q=8; i=8;
return{
init:function(j,k){
m=document.getElementById(j); e=m.getElementsByTagName('li');
var i,l,w,p; i=0; l=e.length;
for(i;i<l;i++){
var c,v; c=e[i]; v=c.value; if(v==1){s=c; w=c.offsetWidth; p=c.offsetLeft}
c.onmouseover=function(){menuSlider.mo(this)}; c.onmouseout=function(){menuSlider.mo(s)};
}
g=document.getElementById(k); g.style.width=w+'px'; g.style.left=p+'px';
},
mo:function(d){
clearInterval(m.tm);
var el,ew; el=parseInt(d.offsetLeft); ew=parseInt(d.offsetWidth);
m.tm=setInterval(function(){menuSlider.mv(el,ew)},i);
},
mv:function(el,ew){
var l,w; l=parseInt(g.offsetLeft); w=parseInt(g.offsetWidth);
if(l!=el||w!=ew){
if(l!=el){var ld,lr,li; ld=(l>el)?-1:1; lr=Math.abs(el-l); li=(lr<q)?ld*lr:ld*q; g.style.left=(l+li)+'px'}
if(w!=ew){var wd,wr,wi; wd=(w>ew)?-1:1; wr=Math.abs(ew-w); wi=(wr<q)?wd*wr:wd*q; g.style.width=(w+wi)+'px'}
}else{clearInterval(m.tm)}
}};}();
CSS které mají spojitost se scriptem:
.menu {font:14px Helvetica, sans-serif; font-weight:bold;position:relative; background:transparent; height:35px;margin:auto;width:100%;text-align:center;}
.menu ul {list-style:none; z-index:10; z-index:100;display:inline-block;padding:0}
.menu li {display:inline}
.menu a, .menu a:active, .menu a:visited {text-decoration:none; color:#A9A582; padding:10px;}
.menu a:hover {color:#8B0B04}
#slide {position:absolute; bottom:0; height:4px; background:#8B0B04; z-index:10}
HTML:
<div class="menu">
<ul id="menu">
<li value="1"><a href="#">První položka</a></li>
<li><a href="kontakt.htm">Druhá položka</a></li>
</ul>
<div id="slide"><!-- --></div>
</div>
Vypadá to že jsem líný udělat si něco sám, ale já opravdu nevím co v Javascriptu upravit