Avatar billede ubbe Nybegynder
25. marts 2001 - 10:46 Der er 15 kommentarer

Start af script

Ok I know this must be very easy, men jeg skal bruge et hurtig svar så her kommer spm!

Jeg har en menu som starter når jeg kører over et link:
<A HREF=\"java script:void(0)\" onMouseOver=\"popUp(\'elMenu1\',event)\" onMouseOut=\"popDown(\'elMenu1\')\" onClick=\"return false\">Menu</A>

Kan jeg ikke på en eller anden måde få den startet fra starten , også den bliver der????

Har mere kode hvis det er!
Avatar billede repsac Nybegynder
25. marts 2001 - 10:54 #1
Hvis du skal have startet noget når siden loades gøres det med:
<body OnLoad=\"JavaScriptet_der_skal_starte();\"> ...
Avatar billede ubbe Nybegynder
25. marts 2001 - 10:55 #2
Jeps I know men har du nogen ide til hvad jeg skal skrive når det startes på den der måde?
Avatar billede repsac Nybegynder
25. marts 2001 - 10:58 #3
Jeg er ikke så stiv til JavaScript ... har du et sted hvor jeg kan se det i funktion?
Avatar billede ubbe Nybegynder
25. marts 2001 - 11:03 #4
Nej det er jeh heller ikke selv.... Har ikke lige mulighed for at smide det op noget sted, jeg ved bare det starte af det der!!!
Avatar billede ubbe Nybegynder
25. marts 2001 - 11:03 #5
det er bare en alm. dropdown menu
Avatar billede repsac Nybegynder
25. marts 2001 - 11:05 #6
Kan du ikke poste hele baduljen her så skal jeg se om jeg kan genneskue det ... :)
Avatar billede repsac Nybegynder
25. marts 2001 - 11:17 #7
Nå ok ... jeg har desværre ikke tid længere ... sorry! - håber du finder en anden der kan hjælpe. Tøv ikke med at afvise mit svart hvis du ikke kan bruge det til en meter ... :)
Avatar billede ubbe Nybegynder
25. marts 2001 - 11:44 #8
Virker stadig ikke, er der mon ikke en der kan gennemskue det??
Avatar billede nikolajdu Nybegynder
25. marts 2001 - 12:52 #9
Kom med noget mere kode. Så skal vi decikere den. :)
Avatar billede ubbe Nybegynder
25. marts 2001 - 13:05 #10
loader = (isFrames) ? (NS4) ? parent : parent.document.body : window;
loader.onload = startIt;
if(NS4){
    origWidth = loader.innerWidth;
    origHeight = loader.innerHeight;
    loader.onresize = reDo;
}
isLoaded = false;
NSresized = false;

if (!window.menuVersion) {
    clickKill = keepHilite = clickStart = false;
}

if (!window.imgHspace) imgHspace=0;

isWin = (navigator.appVersion.indexOf(\"Win\") != -1)

mSecsVis = secondsVisible*1000;
isRight = (window.navFrLoc && navFrLoc == \"right\");
fullImgSize = (imgSiz+(imgHspace*2));
if(!IE5) {
    imgSuf = (isRight) ? \">\"  : \" ALIGN=RIGHT>\";
    imgStr = \"<IMG SRC=\'\" + imgSrc + \"\' WIDTH=\" + imgSiz + \" HEIGHT=\" + imgSiz +\" VSPACE=2 HSPACE=\"+ imgHspace +\" BORDER=0\"+ imgSuf;
    if(IE4) imgStr = \"<SPAN STYLE=\'height:100%;width:\"+ (fullImgSize-(isRight?3:0)) +\";float:\"+ (isRight?\"left\":\"right\") +\";overflow:hidden\'>\"+ imgStr +\"</SPAN>\";
}

areCreated = false;
menuLoc = null;

function initVars() {
    if(areCreated) {
        for(i=1; i<topCount; i++) {
            cur = eval(\"elMenu\"+i);
            clearTimeout(cur.hideTimer);
            cur.hideTimer=null;
        }
        clearTimeout(allTimer);
    }
    topCount = 1;
    areCreated = false;
    beingCreated = false;
    isOverMenu = false;
    currentMenu = null;
    allTimer = null;
}

initVars();

function NSunloaded(){
    isLoaded = false;
}

function NSloaded(e){
    if (e.target.name == mainFrName) {
        initVars();
        startIt();
    }
}

function IEunloaded() {
    initVars();
    isLoaded = false;
    setTimeout(\"keepTrack()\",50)
}

function keepTrack() {
    if (menuLoc.document.readyState == \"complete\") {
        initVars();
        startIt();
    }
    else {
        setTimeout(\"keepTrack()\",50);
    }
}

function startIt() {
    isLoaded = true;
    if (isFrames) {
        menuLoc = eval(\"parent.frames.\" + mainFrName);
        if (NS4) {
            loader.captureEvents(Event.LOAD);
            loader.onload = NSloaded;
            menuLoc.onunload = NSunloaded;
        }
        if (IE4) {
            menuLoc.document.body.onunload = IEunloaded;
        }
    }
    else {
        menuLoc = window;
    }
    menuLoc.nav = nav = window;
    if (clickKill) {
        if (NS4) menuLoc.document.captureEvents(Event.MOUSEDOWN);
        menuLoc.document.onmousedown = clicked;
    }
    makeTop(); 
}

function makeTop(){
    beingCreated = true;
    if(IE4) {
        topZ = 0;
        for (z=0;z<menuLoc.document.all.length;z++){
            oldEl = menuLoc.document.all(z);
            topZ = Math.max(oldEl.style.zIndex,topZ)
        }
    }
    while(eval(\"window.arMenu\" + topCount)) {
        (NS4) ? makeMenuNS(false,topCount) : makeMenuIE(false,topCount);
        topCount++
    }

    status = \"Menu indlæst korrekt\"
    areCreated = true;
    beingCreated = false;
}

function makeMenuNS(isChild,menuCount,parMenu,parItem) {
    tempArray = eval(\"arMenu\" + menuCount);
   
    if (!isChild) {
        tempWidth = tempArray[0] ? tempArray[0] : menuWidth;
        menu = makeElement(\"elMenu\" + menuCount,tempWidth,null,null);
    }
    else {
        menu = makeElement(\"elMenu\" + menuCount,null,parMenu,null);
    }
    menu.array = tempArray;
    menu.setMenuTree = setMenuTree;
    menu.setMenuTree(isChild,parMenu);

    while (menu.itemCount < menu.maxItems) {
        menu.itemCount++;
       
        prevItem = (menu.itemCount > 1) ? menu.item : null;
        itemName = \"item\" + menuCount + \"_\" + menu.itemCount;

        menu.item = makeElement(itemName,null,null,menu);

        menu.item.prevItem = prevItem;
        menu.item.setup = itemSetup;
        menu.item.setup(menu.itemCount,menu.array);
        if (menu.item.hasMore) {
            makeMenuNS(true,menuCount + \"_\" + menu.itemCount,menu,menu.item);
            menu = menu.parentMenu;
        }
    }
    menu.lastItem = menu.item;
    menu.setup(isChild,parMenu,parItem);
}

function findTree(men){
    foundTree = false;
    for(i=11;i<men.array.length;i+=3){
        if(men.array[i]) {
            foundTree = true;
            break;
        }
    }
    return foundTree;
}

function setMenuTree(isChild,parMenu) {
    if (!isChild) {
        this.menuWidth = this.array[0] ? this.array[0] : menuWidth;
        this.menuLeft = this.array[1];
        this.menuTop = this.array[2];
        this.menuFontColor = this.array[3] ? this.array[3] : fntCol;
        this.menuFontOver = this.array[4] ? this.array[4] : overFnt;
        this.menuBGColor = this.array[5] ? this.array[5] : backCol;
        this.menuBGOver = this.array[6] ? this.array[6] : overCol;
        this.menuBorCol = this.array[7] ? this.array[7] : borCol;
        this.menuSeparatorCol = this.array[8] ? this.array[8] : separatorCol;
        this.treeParent = this;
        this.startChild = this;
        this.isTree = findTree(this);
    }
    else {
        this.menuWidth = parMenu.menuWidth;
        this.menuLeft = parMenu.menuLeft;
        this.menuTop = parMenu.menuTop;
        this.menuFontColor = parMenu.menuFontColor;
        this.menuFontOver = parMenu.menuFontOver;
        this.menuBGColor = parMenu.menuBGColor;
        this.menuBGOver = parMenu.menuBGOver;
        this.menuBorCol = parMenu.menuBorCol;
        this.menuSeparatorCol = parMenu.menuSeparatorCol;
        this.treeParent = parMenu.treeParent;
        this.isTree = parMenu.isTree;
    }

    this.maxItems = (isChild) ? this.array.length/3 : (this.array.length-9)/3;
    this.hasParent = isChild;
    this.setup = menuSetup;
    this.itemCount = 0;
}

function makeMenuIE(isChild,menuCount,parMenu) {
    menu = makeElement(\"elMenu\" + menuCount);
    menu.array = eval(\"arMenu\" + menuCount);
    menu.setMenuTree = setMenuTree;
    menu.setMenuTree(isChild,parMenu);
    menu.itemStr = \"\";
   
    while (menu.itemCount < menu.maxItems) {
        menu.itemCount++;
        itemName = \"item\" + menuCount + \"_\" + menu.itemCount;

        arrayPointer = (isChild) ? (menu.itemCount-1)*3 :((menu.itemCount-1)*3)+9;
        dispText = menu.array[arrayPointer];
        hasMore = menu.array[arrayPointer + 2];

        if(IE5) {
            newSpan = menuLoc.document.createElement(\"SPAN\");
            with(newSpan) {
                id = itemName;
                with(style) {
                    width = (menu.menuWidth-(borWid*2));
                    fontSize = fntSiz + \"pt\";
                    fontWeight = (fntBold) ? \"bold\" : \"normal\";
                    fontStyle = (fntItal) ? \"italic\" : \"normal\";
                    fontFamily = fntFam;
                    padding = itemPad;
                    borderBottomWidth = separator + \"px\";
                    borderBottomStyle = \"solid\";

//3.10.3 added conditional:
                    if(menu.isTree)    {
                        if (isRight) paddingLeft = itemPad+fullImgSize;
                        else paddingRight = itemPad+fullImgSize;
                    }
                }
                innerHTML = dispText;
            }

            newBreak = menuLoc.document.createElement(\"BR\");
            menu.appendChild(newSpan);
            menu.appendChild(newBreak);

            if(hasMore) {

//3.10.3 omitted next 2 statements:
//                if (isRight) newSpan.style.paddingLeft = itemPad+fullImgSize;
//                else newSpan.style.paddingRight = itemPad+fullImgSize;

                newImage = menuLoc.document.createElement(\"IMAGE\");
                with(newImage){
                    src = imgSrc;
                    with(style) {
                        position = \"absolute\";
                        width = imgSiz;
                        height = imgSiz;
                        left = (isRight) ? itemPad : (newSpan.style.pixelWidth - itemPad - imgSiz);
                        top = newSpan.offsetTop + itemPad + (isMac ? 0 : 2);
                    }
                }
                newSpan.appendChild(newImage);
            }
        }
        else {
            htmStr = (hasMore) ? imgStr + dispText : dispText;
            menu.itemStr += \"<SPAN ID=\" + itemName + \" STYLE=\\\"width:\" + (menu.menuWidth-(borWid*2)) + \"\\\">\" + htmStr + \"</SPAN><BR>\";
        }
        if (hasMore) {
            makeMenuIE(true,menuCount + \"_\" + menu.itemCount,menu);
            menu = menu.parentMenu;
        }
    }

    if(!IE5) menu.innerHTML = menu.itemStr;

    itemColl = menu.children.tags(\"SPAN\");
    for (i=0; i<itemColl.length; i++) {
        it = itemColl(i);
        it.setup = itemSetup;
        it.setup(i+1,menu.array);
    }
    menu.lastItem = itemColl(itemColl.length-1);
    menu.setup(isChild,parMenu);
}

function makeElement(whichEl,whichWidth,whichParent,whichContainer) {
    if (NS4) {
        if (whichWidth) {
            elWidth = whichWidth;
        }
        else {
            elWidth = (whichContainer) ? whichContainer.menuWidth : whichParent.menuWidth;
            if (whichContainer) elWidth = elWidth-(borWid*2)-(itemPad*2);
        }
        if (!whichContainer) whichContainer = menuLoc;
        eval(whichEl + \"= new Layer(elWidth,whichContainer)\");
    }
    else {
        if (IE5) {
            newDiv = menuLoc.document.createElement(\"DIV\");
            newDiv.style.position = \"absolute\";
            newDiv.id = whichEl;
            menuLoc.document.body.appendChild(newDiv);
        }
        else {
            elStr = \"<DIV ID=\" + whichEl + \" STYLE=\'position:absolute\'></DIV>\";
            menuLoc.document.body.insertAdjacentHTML(\"BeforeEnd\",elStr);
        }
        if (isFrames) eval(whichEl + \"= menuLoc.\" + whichEl);
    }
    return eval(whichEl);
}

function itemSetup(whichItem,whichArray) {
    this.onmouseover = itemOver;
    this.onmouseout = itemOut;
    this.container = (NS4) ? this.parentLayer : this.parentElement;

    arrayPointer = (this.container.hasParent) ? (whichItem-1)*3 : ((whichItem-1)*3)+9;
    this.dispText = whichArray[arrayPointer];
    this.linkText = whichArray[arrayPointer + 1];
    this.hasMore = whichArray[arrayPointer + 2];

    if (IE4 && this.hasMore) {
        this.child = eval(\"elMenu\" + this.id.substr(4));
        this.child.parentMenu = this.container;
        this.child.parentItem = this;
    }

    if (this.linkText) {
        if (NS4) {
            this.captureEvents(Event.MOUSEUP)
            this.onmouseup = linkIt;
        }
        else {
            this.onclick = linkIt;
            this.style.cursor = \"hand\";
        }
    }

    if (NS4) {
        htmStr = this.dispText;
        if (fntBold) htmStr = htmStr.bold();
        if (fntItal) htmStr = htmStr.italics();

        htmStr = \"<FONT FACE=\'\" + fntFam + \"\' POINT-SIZE=\" + fntSiz + \">\" + htmStr+ \"</FONT>\";
        this.htmStrOver = htmStr.fontcolor(this.container.menuFontOver);
        this.htmStr = htmStr.fontcolor(this.container.menuFontColor);
        if(this.hasMore) {
            this.document.write(imgStr);
            this.document.close();
        }
        this.visibility = \"inherit\";
        this.bgColor = this.container.menuBGColor;
        if (whichItem == 1) {
            this.top = borWid + itemPad;
        }
        else {
            this.top = this.prevItem.top + this.prevItem.clip.height + separator;
        }
        this.left = borWid + itemPad;
        this.clip.top = this.clip.left = -itemPad;
        this.clip.right = this.container.menuWidth-(borWid*2)-itemPad;
        maxTxtWidth = this.container.menuWidth-(borWid*2)-(itemPad*2);
        if (this.container.isTree) maxTxtWidth-=(fullImgSize);

        this.txtLyrOff = new Layer(maxTxtWidth,this);
        if (isRight && this.container.isTree) this.txtLyrOff.left = fullImgSize;
        this.txtLyrOff.document.write(this.htmStr);
        this.txtLyrOff.document.close();
        this.txtLyrOff.visibility = \"inherit\";

        this.clip.bottom = this.txtLyrOff.document.height+itemPad;

        this.txtLyrOn = new Layer(maxTxtWidth,this);
        if (isRight && this.container.isTree) this.txtLyrOn.left = fullImgSize;
        this.txtLyrOn.document.write(this.htmStrOver);
        this.txtLyrOn.document.close();
        this.txtLyrOn.visibility = \"hide\";

        this.dummyLyr = new Layer(100,this);
        this.dummyLyr.left = this.dummyLyr.top = -itemPad;
        this.dummyLyr.clip.width = this.clip.width;
        this.dummyLyr.clip.height = this.clip.height;
        this.dummyLyr.visibility = \"inherit\";
    }
    else {
        with (this.style) {
            if(!IE5) {
                fontSize = fntSiz + \"pt\";
                fontWeight = (fntBold) ? \"bold\" : \"normal\";
                fontStyle =  (fntItal) ? \"italic\" : \"normal\";
                fontFamily = fntFam;
                padding = itemPad;
                borderBottomWidth = separator + \"px\";
                borderBottomStyle = \"solid\";

//3.10.3 moved conditional here from below:

                if (this.container.isTree && !this.hasMore) {
                    if (isRight) paddingLeft = itemPad+fullImgSize;
                    else paddingRight = itemPad+fullImgSize;
                }

            }

//3.10.3 moved conditional above
//            if (this.container.isTree && !this.hasMore) {
//                if (isRight) paddingLeft = itemPad+fullImgSize;
//                else paddingRight = itemPad+fullImgSize;
//            }

            color = this.container.menuFontColor;
            borderBottomColor = this.container.menuSeparatorCol;
            backgroundColor = this.container.menuBGColor;
        }
    }
} 

function menuSetup(hasParent,openCont,openItem) {
    this.onmouseover = menuOver;
    this.onmouseout = menuOut;
   
    this.showIt = showIt;
    this.keepInWindow = keepInWindow;
    this.hideTree = hideTree
    this.hideParents = hideParents;
    this.hideChildren = hideChildren;
    this.hideTop = hideTop;
    this.hasChildVisible = false;
    this.isOn = false;
    this.hideTimer = null;

    this.childOverlap = (perCentOver != null) ? ((perCentOver/100) * this.menuWidth) : childOverlap;
    this.currentItem = null;
    this.hideSelf = hideSelf;
       
    if (hasParent) {
        this.hasParent = true;
        this.parentMenu = openCont;
        if (NS4) {
            this.parentItem = openItem;
            this.parentItem.child = this;
        }
    }
    else {
        this.hasParent = false;
    }

    if (NS4) {
        this.bgColor = this.menuBorCol;
        this.fullHeight = this.lastItem.top + this.lastItem.clip.bottom + borWid;
        this.clip.right = this.menuWidth;
        this.clip.bottom = this.fullHeight;
    }
    else {
        with (this.style) {
            width = this.menuWidth;
            borderWidth = borWid;
            borderColor = this.menuBorCol;
            borderStyle = borSty;
            zIndex = topZ;
            overflow = \"hidden\";
        }
        this.lastItem.style.border=\"\";
        this.fullHeight = this.offsetHeight;
        if(isMac)this.style.pixelHeight = this.fullHeight;
        this.fullHeight = this.scrollHeight;
        this.showIt(false);
        this.onselectstart = cancelSelect;
        this.moveTo = moveTo;
        this.moveTo(0,0);
    }
}

function popUp(menuName,e){
    if (NS4 && NSresized) startIt();
    if (!isLoaded) return;
    linkEl = (NS4) ? e.target : event.srcElement;
    if (clickStart) linkEl.onclick = popMenu;
    if (!beingCreated && !areCreated) startIt();
    linkEl.menuName = menuName; 
    if (!clickStart) popMenu(e);
}

function popMenu(e){
    if (!isLoaded || !areCreated) return true;

    eType = (NS4) ? e.type : event.type;
    if (clickStart && eType != \"click\") return true;
    hideAll();

    linkEl = (NS4) ? e.target : event.srcElement;
   
    currentMenu = eval(linkEl.menuName);
    currentMenu.hasParent = false;
    currentMenu.treeParent.startChild = currentMenu;
   
    if (IE4) menuLocBod = menuLoc.document.body;
    if (!isFrames) {
        xPos = (currentMenu.menuLeft) ? currentMenu.menuLeft : (NS4) ? e.pageX : (event.clientX + menuLocBod.scrollLeft);
        yPos = (currentMenu.menuTop) ? currentMenu.menuTop : (NS4) ? e.pageY : (event.clientY + menuLocBod.scrollTop);
    }
    else {
        switch (navFrLoc) {
            case \"left\":
                xPos = (currentMenu.menuLeft) ? currentMenu.menuLeft : (NS4) ? menuLoc.pageXOffset : menuLocBod.scrollLeft;
                yPos = (currentMenu.menuTop) ? currentMenu.menuTop : (NS4) ? (e.pageY-pageYOffset)+menuLoc.pageYOffset : event.clientY + menuLocBod.scrollTop;
                break;
            case \"top\":
                xPos = (currentMenu.menuLeft) ? currentMenu.menuLeft : (NS4) ? (e.pageX-pageXOffset)+menuLoc.pageXOffset : event.clientX + menuLocBod.scrollLeft;
                yPos = (currentMenu.menuTop) ? currentMenu.menuTop : (NS4) ? menuLoc.pageYOffset : menuLocBod.scrollTop;
                break;
            case \"bottom\":
                xPos = (currentMenu.menuLeft) ? currentMenu.menuLeft : (NS4) ? (e.pageX-pageXOffset)+menuLoc.pageXOffset : event.clientX + menuLocBod.scrollLeft;
                yPos = (currentMenu.menuTop) ? currentMenu.menuTop : (NS4) ? menuLoc.pageYOffset+menuLoc.innerHeight : menuLocBod.scrollTop + menuLocBod.clientHeight;
                break;
            case \"right\":
                xPos = (currentMenu.menuLeft) ? currentMenu.menuLeft : (NS4) ? menuLoc.pageXOffset+menuLoc.innerWidth : menuLocBod.scrollLeft+menuLocBod.clientWidth;
                yPos = (currentMenu.menuTop) ? currentMenu.menuTop : (NS4) ? (e.pageY-pageYOffset)+menuLoc.pageYOffset : event.clientY + menuLocBod.scrollTop;
                break;
        }
    }

    currentMenu.moveTo(xPos,yPos);
    currentMenu.keepInWindow()
    currentMenu.isOn = true;
    currentMenu.showIt(true);

    return false;
}

function menuOver(e) {
    this.isOn = true;
    isOverMenu = true;
    currentMenu = this;
    if (this.hideTimer) clearTimeout(this.hideTimer);
}

function menuOut() {
    if (IE4) {
        theEvent = menuLoc.event;
        if (theEvent.srcElement.contains(theEvent.toElement)) return;
    }
    this.isOn = false;
    isOverMenu = false;

    menuLoc.status = \"\";
    if (!clickKill) allTimer = setTimeout(\"currentMenu.hideTree()\",10); 
}

function itemOver(){
    if (keepHilite) {
        if (this.container.currentItem && this.container.currentItem != this) {
            if (NS4) {
                this.container.currentItem.bgColor = this.container.menuBGColor;
                this.container.currentItem.txtLyrOff.visibility = \"inherit\";
                this.container.currentItem.txtLyrOn.visibility = \"hide\";
            }
            else {
                with (this.container.currentItem.style) {
                    backgroundColor = this.container.menuBGColor;
                    color = this.container.menuFontColor;
                }
            }
        }
    }

    if (IE4) {
        theEvent = menuLoc.event;
        if (theEvent.srcElement.tagName == \"IMG\") return;
        this.style.backgroundColor = this.container.menuBGOver;
        this.style.color = this.container.menuFontOver;
    }
    else {
        this.bgColor = this.container.menuBGOver;
        this.txtLyrOff.visibility = \"hide\";
        this.txtLyrOn.visibility = \"inherit\";
    }

    menuLoc.status = this.linkText;

    this.container.currentItem = this;

    if (this.container.hasChildVisible) {
        this.container.hideChildren(this);
    }

    if (this.hasMore) {
        horOffset = (isRight) ? (this.container.childOverlap - this.container.menuWidth) : (this.container.menuWidth - this.container.childOverlap);

        if (NS4) {
            this.childX = this.container.left + horOffset;
            this.childY = (this.pageY+this.clip.top) + childOffset;
        }
        else {
            this.childX = this.container.style.pixelLeft + horOffset;
            this.childY = this.offsetTop + this.container.style.pixelTop + childOffset + borWid;
        }

        this.child.moveTo(this.childX,this.childY);
        this.child.keepInWindow();
        this.container.hasChildVisible = true;
        this.container.visibleChild = this.child;
        this.child.showIt(true);
    }
}

function itemOut() {
    if (IE4) {
        theEvent = menuLoc.event;
        if (theEvent.srcElement.contains(theEvent.toElement)
      || (theEvent.fromElement.tagName==\"IMG\" && theEvent.toElement.contains(theEvent.fromElement)))
          return;
        if (!keepHilite) {
            this.style.backgroundColor = this.container.menuBGColor;
            this.style.color = this.container.menuFontColor;
        }
    }
    else {
        if (!keepHilite) {
            this.bgColor = this.container.menuBGColor;
            this.txtLyrOff.visibility = \"inherit\";
            this.txtLyrOn.visibility = \"hide\";
        }
        if (!isOverMenu && !clickKill) {
            allTimer = setTimeout(\"currentMenu.hideTree()\",10);
        }
    }
}

function moveTo(xPos,yPos) {
    this.style.pixelLeft = xPos;
    this.style.pixelTop = yPos;
}

function showIt(on) {
    if (NS4) {
        this.visibility = (on) ? \"show\" : \"hide\";
        if (keepHilite && this.currentItem) {
            this.currentItem.bgColor = this.menuBGColor;
            this.currentItem.txtLyrOff.visibility = \"inherit\";
            this.currentItem.txtLyrOn.visibility = \"hide\";
        }
    }
    else {
        this.style.visibility = (on) ? \"visible\" : \"hidden\";
        if (keepHilite && this.currentItem) {
            with (this.currentItem.style) {
                backgroundColor = this.menuBGColor;
                color = this.menuFontColor;
            }
        }
    }
    this.currentItem = null;
}

function keepInWindow() {
    scrBars = 20;
    botScrBar = (isFrames && navFrLoc==\"bottom\") ? (borWid*2) : scrBars;
    rtScrBar = (isFrames && navFrLoc==\"right\") ? (borWid*2) : scrBars;
    if (NS4) {
        winRight = (menuLoc.pageXOffset + menuLoc.innerWidth) - rtScrBar;
        rightPos = this.left + this.menuWidth;
   
        if (rightPos > winRight) {
            if (this.hasParent) {
                parentLeft = this.parentMenu.left;
                newLeft = ((parentLeft-this.menuWidth) + this.childOverlap);
                this.left = newLeft;
            }
            else {
                dif = rightPos - winRight;
                this.left -= dif;
            }
        }

        winBot = (menuLoc.pageYOffset + menuLoc.innerHeight) - botScrBar ;
        botPos = this.top + this.fullHeight;

        if (botPos > winBot) {
            dif = botPos - winBot;
            this.top -= dif;
        }
       
        winLeft = menuLoc.pageXOffset;
        leftPos = this.left;

        if (leftPos < winLeft) {
            if (this.hasParent) {
                parentLeft = this.parentMenu.left;
                newLeft = ((parentLeft+this.menuWidth) - this.childOverlap);
                this.left = newLeft;
            }
            else {
                this.left = 5;
            }
        }
    }
    else {
        winRight = (menuLoc.document.body.scrollLeft + menuLoc.document.body.clientWidth) - rtScrBar;
        rightPos = this.style.pixelLeft + this.menuWidth;
   
        if (rightPos > winRight) {
            if (this.hasParent) {
                parentLeft = this.parentMenu.style.pixelLeft;
                newLeft = ((parentLeft - this.menuWidth) + this.childOverlap);
                this.style.pixelLeft = newLeft;
            }
            else {
                dif = rightPos - winRight;
                this.style.pixelLeft -= dif;
            }
        }

        winBot = (menuLoc.document.body.scrollTop + menuLoc.document.body.clientHeight) - botScrBar;
        botPos = this.style.pixelTop + this.fullHeight;

        if (botPos > winBot) {
            dif = botPos - winBot;
            this.style.pixelTop -= dif;
        }
       
        winLeft = menuLoc.document.body.scrollLeft;
        leftPos = this.style.pixelLeft;

        if (leftPos < winLeft) {
            if (this.hasParent) {
                parentLeft = this.parentMenu.style.pixelLeft;
                newLeft = ((parentLeft+this.menuWidth) - this.childOverlap);
                this.style.pixelLeft = newLeft;
            }
            else {
                this.style.pixelLeft = 5;
            }
        }
    }
}

function linkIt() {
    if (this.linkText.indexOf(\"java script:\")!=-1) eval(this.linkText)
    else menuLoc.location.href = this.linkText;
}

function popDown(menuName){
    if (!isLoaded || !areCreated) return;
    whichEl = eval(menuName);
    whichEl.isOn = false;
    if (!clickKill) whichEl.hideTop();
}

function hideAll() {
    for(i=1; i<topCount; i++) {
        temp = eval(\"elMenu\" + i + \".startChild\");
        temp.isOn = false;
        if (temp.hasChildVisible) temp.hideChildren();
        temp.showIt(false);
    } 
}

function hideTree() {
    allTimer = null;
    if (isOverMenu) return;
    if (this.hasChildVisible) {
        this.hideChildren();
    }
    this.hideParents();
}

function hideTop() {
    whichTop = this;
    (clickKill) ? whichTop.hideSelf() : (this.hideTimer = setTimeout(\"if(whichTop.hideSelf)whichTop.hideSelf()\",mSecsVis));
}

function hideSelf() {
    this.hideTimer = null;
    if (!this.isOn && !isOverMenu) {
        this.showIt(false);
    }
}

function hideParents() {
    tempMenu = this;
    while (tempMenu.hasParent) {
        tempMenu.showIt(false);
        tempMenu.parentMenu.isOn = false;     
        tempMenu = tempMenu.parentMenu;
    }
    tempMenu.hideTop();
}

function hideChildren(item) {
    tempMenu = this.visibleChild;
    while (tempMenu.hasChildVisible) {
        tempMenu.visibleChild.showIt(false);
        tempMenu.hasChildVisible = false;
        tempMenu = tempMenu.visibleChild;
    }

    if (!this.isOn || !item.hasMore || this.visibleChild != this.child) {
        this.visibleChild.showIt(false);
        this.hasChildVisible = false;
    }
}

function cancelSelect(){return false}

function reDo(){
    if (loader.innerWidth==origWidth && loader.innerHeight==origHeight) return;
    initVars();
    NSresized=true;
    menuLoc.location.reload();
}

function clicked() {
    if (!isOverMenu && currentMenu!=null && !currentMenu.isOn) {
        whichEl = currentMenu;
        whichEl.hideTree();
    }
}

window.onerror = handleErr;

function handleErr(){
    arAccessErrors = [\"permission\",\"access\"];
    mess = arguments[0].toLowerCase();
    found = false;
    for (i=0;i<arAccessErrors.length;i++) {
        errStr = arAccessErrors[i];
        if (mess.indexOf(errStr)!=-1) found = true;
    }
    return found;
}

//end

Avatar billede jakoba Nybegynder
25. marts 2001 - 13:15 #11
Din kode er baseret på at menuen skal folde sig ind igen når musen bevæges væk fra de derlinks.
Men idet du lige er kommet til siden har vi ingen anelse om hvor din mus er, den er sandsynligvis allerede langt væk fra linket. Og så står den udfoldede menu og dækker over en stor del af siden uden nogensinde at blive lukket.

Det kan sagtens gøres. fx med repsac\'s
  <body onLoad=\"popUp(\'elMenu1\',event)\">
men det ville være noget klamphuggeri og kan ikke anbefales.

eller også har jeg misforstået dit ønske og behøver en bedre forklaring :)

mvh JakobA
Avatar billede ubbe Nybegynder
25. marts 2001 - 13:25 #12
Meningen er at jeg bare vil have den menu som folder sig ud når jeg kører hen over et link, den skal bare forblive åben et bestemt sted på siden...!
Avatar billede nikolajdu Nybegynder
25. marts 2001 - 13:28 #13
Den skal altså ikke folde sig sammen igen?
Avatar billede ubbe Nybegynder
25. marts 2001 - 13:33 #14
nope, jeg skal kunne bestemme hvor jeg gerne vil have den skal være og der skal den være!! :)
Avatar billede jakoba Nybegynder
25. marts 2001 - 14:39 #15
Så skal du bare skrive menuen i ganske almindelig html kode.
Hvis samme menu akal bruges på mange sider kan vi bagefter lave den om til et javascript, men først skal den blot skrives på een side, så der er noget at starte med.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester