Erweiterung
Allvar
- javascript
Ich möchte gerne ein Script erweitern.
Bisher hat es nur eine Slidefunktion, jedoch möchte ich nun, dass er nach ausführen seiner jetzigen Funktion ein Menü öffnet.
Jedoch weiß ich nicht wie ich das bewerkstelligen soll.
Wäre nett, wenn mir jemand weiterhelfen könnte.
Hier der Code!
index.html:
<ul id="navheader">
<li id="index"><a href="index.phtml" title="">Neuigkeiten</a></li>
<li id="raccu"><a href="about.phtml" title="">About Raccu</a></li>
<li id="faq"><a href="faq.phtml" title=""> FAQ </a></li>
<li id="fan"><a href="fan.phtml" title="">Fanecke</a></li>
<li id="staff"><a href="db.phtml" title="">Datenbank</a></li>
<li id="lp"><a href="lp.phtml" title="">Links</a></li>
<li id="impressum"><a href="impressum.phtml" title="">Impressum</a></li>
<li id="forum"><a href="http://rpga.info/forum/forumdisplay.php?f=111" title="" target="_blank">Zum Forum</a></li>
</ul>
smartmini.css:
#navheader {
position: relative;
margin :0 auto;
width: 550px;
height: 30px;
padding:0;
border-bottom: 1px solid #CE0000;
z-index:0;}
#navheader li {
z-index: 3;
position: relative;
float: left;
padding: 0;
margin: 0;
list-style: none;
font: 10px/32px tahoma;
font-weight: bold;}
#navheader li a {
display: block;
padding: 0 10px;
text-decoration: none;
color: #999;}
#navheader li a:hover {
color: #9C0808;}
#navheader li.current {
z-index: 1;
color:#9C0808;}
#slider {
z-index: 2;
position: absolute;
height: 29px;
border-bottom: 5px solid #CE0000;}
smartmini.js:
window.onload = init;
var d=document; // These four variables
var activeLI = 0; // should not be
var currentLI = 0; // edited unless you
var zInterval = null; // really know your stuff
var SLIDE_STEP = 8; // # of pixels to slide each step (higher is faster)
var RESIZE_STEP = 3; // # of pixels to resize each step (higher is faster)
function init() {
if(!document.getElementById || window.opera)return;
mObj = d.getElementById("navheader");
liObj = mObj.getElementsByTagName("li");
aObj = mObj.getElementsByTagName("a");
for(i=0;i<liObj.length;i++) { // create mouseovers/mouseouts for the li's and the ul
liObj[i].xid = i;
liObj[i].onmouseover = function() { initSlide(this.xid); }
}
mObj.onmouseout = function() { initSlide(currentLI); }
// create the slider object
slideObj = mObj.appendChild(d.createElement("div"));
slideObj.id = "slider";
// position the slider over the current li
initActive();
x = liObj[activeLI].offsetLeft;
y = liObj[activeLI].offsetTop-3;
slideObj.style.top = y + "px";
slideObj.style.left = x + "px";
slideObj.style.width = liObj[activeLI].offsetWidth + "px";
}
function initActive() { // discover the current tab by comparing anchor hrefs to the window href
for(i=0;i<aObj.length;i++) {
if(d.location.href.indexOf(aObj[i].href)>=0) {
activeLI = currentLI = i;
}
}
liObj[currentLI].className="current"; //set a class so the li can be styled
}
function initSlide(objIndex) {
if(objIndex == activeLI)return;
clearInterval(zInterval);
activeLI = objIndex;
destX = liObj[activeLI].offsetLeft; // the desination location
destW = liObj[activeLI].offsetWidth; // the destination size
intervalMethod = function() { doSlide(destX); }
zInterval = setInterval(intervalMethod,10);
}
function doSlide(dX) { // move the slider div
x = slideObj.offsetLeft;
if(x+SLIDE_STEP<dX) {
// if the x-value is less than its destination, move it to the right
x+=SLIDE_STEP;
slideObj.style.left = x + "px";
doResize(destW);
} else if (x-SLIDE_STEP>dX) {
// if the x-value is more than its destination, move to the left
x-=SLIDE_STEP;
slideObj.style.left = x + "px";
doResize(destW);
} else {
// if the div is within SLIDE_STEP pixels, move it to the proper location
slideObj.style.left = dX + "px";
slideObj.style.width = destW +"px";
clearInterval(zInterval);
zInterval = null;
}
}
function doResize(dW) { // resize the slider div -- similar in execution to doSlide
w = slideObj.offsetWidth;
if (slideObj.offsetWidth!=dW) {
if (w+RESIZE_STEP<dW) {
w+=RESIZE_STEP;
slideObj.style.width = w + "px";
} else if (w-RESIZE_STEP>dW) {
w-=RESIZE_STEP;
slideObj.style.width = w + "px";
} else {
slideObj.style.width = dW + "px";
}
}
}
Bin dankbar für jede Unterstützung!