Visualizzazione dei risultati da 1 a 7 su 7

Discussione: menù in javascript

  1. #1

    menù in javascript

    Salve a tutti. Premetto che non sono esperto in HTML e derivati.
    Ho trovato un semplicissimo menù a tendina in javascript con 2 file esterni uno con la sorgente del menù e l'altro con i collegamenti e le parole che devono comparire nel suddetto menù.
    Ho come homepage una pagina con un frame centrale dove volevo far comparire le pagine linkate dal menù... Dove devo mettere frame=nomeframe????

    Grazie! Allego codice del file esterno per i collegamenti.

    Arrays.js

    --inizio--


    arMenu1 = new Array(
    "1","uno.htm",0,
    "2","due.htm",0,
    "3","tre.htm",0,
    "4","quattro.htm",0,
    "5","cinque.htm",0

    )



    --fine--

  2. #2
    Essendo il tuo primo post, non ti ammonisco :rollo:, ma ti invito a leggere il regolamento del forum e a scrivere i messaggi nei forum adatti, questo per esempio doveva essere scritto dentro il forum Javascript.

    La prossima volta sguinzaglierò i cani
    FEDERIX.IT - [Pillola] GRAFICA DEI FORM

    ...ho ancora quella forza che ti serve, quando dici "Si comincia!"

  3. #3
    se posti il link allo script o posti anche il codice del secondo file js, si può capire come risolvere il tuo problema, perchè così con quello che hai postato è un pò difficile..


  4. #4
    Scusate!

  5. #5

    Re: menù in javascript

    Eccoli!

    Arrays.js

    --inizio--


    arMenu1 = new Array(
    "1","uno.htm",0,
    "2","due.htm",0,
    "3","tre.htm",0,
    "4","quattro.htm",0,
    "5","cinque.htm",0

    )



    --fine--

    2° file esterno menu.js

    --INIZIO--

    if (perCentOver != null) {
    childOverlap = (perCentOver/100) * menuWidth
    }
    mSecsVis = secondsVisible*1000;

    semi = ";";
    styleStr = "<STYLE TYPE='text/css'>"
    styleStr += ".items {"
    styleStr += "width:" + menuWidth + semi
    styleStr += "color:"+ fntCol + semi
    styleStr += "font-size:"+ fntSiz + semi
    styleStr += "font-weight:"+ fntWgh + semi
    styleStr += "font-style:"+ fntSty + semi
    styleStr += "font-family:"+ fntFam + semi
    styleStr += "border-width:" + borWid + semi
    styleStr += "border-color:" + borCol + semi
    styleStr += "border-style:" + borSty + semi
    styleStr += "line-height:" + linHgt + semi
    styleStr += "}"
    styleStr += "</STYLE>";

    document.write(styleStr);

    imgStr = "[img] + imgSrc + [/img]"

    topCount = 1;
    areCreated = false;
    isOverMenu = false;
    currentMenu = null;
    allTimer = null;

    function menuSetup(hasParent,lastItem,openCont,openItem) {

    this.menuOver = menuOver;
    this.menuOut = menuOut;

    this.onmouseover = this.menuOver;
    this.onmouseout = this.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;

    if (hasParent) {
    this.hasParent = true;
    this.parentMenu = openCont;
    this.parentItem = openItem;
    this.parentItem.child = this;
    }
    else {
    this.hasParent = false;
    this.hideSelf = hideSelf;
    }

    if (NS4) {
    this.fullHeight = lastItem.top + lastItem.document.height;
    this.clip.bottom = this.fullHeight;
    }
    else {
    this.fullHeight = lastItem.style.pixelTop + lastItem.offsetHeight;
    this.showIt(false);
    this.onselectstart = cancelSelect;
    this.moveTo = moveTo;
    this.moveTo(0,0);
    }
    }

    function itemSetup(arrayPointer,whichArray) {

    this.itemOver = itemOver;
    this.itemOut = itemOut;
    this.onmouseover = this.itemOver;
    this.onmouseout = this.itemOut;

    this.dispText = whichArray[arrayPointer];
    this.linkText = whichArray[arrayPointer + 1];
    this.hasMore = whichArray[arrayPointer + 2];

    if (this.linkText.length > 0) {
    this.linkIt = linkIt;
    if (NS4) {
    this.onfocus = this.linkIt;
    }
    else {
    this.onclick = this.linkIt;
    this.style.cursor = "hand";
    }
    }

    if (this.hasMore) {
    htmStr = imgStr + this.dispText;
    }
    else {
    htmStr = this.dispText;
    }

    if (NS4) {
    layStr = "<SPAN CLASS=items>" + htmStr+ "</SPAN>";
    this.document.write(layStr);
    this.document.close();

    this.bgColor = backCol;
    this.clip.right = menuWidth;
    this.visibility = "inherit";
    this.container = this.parentLayer;

    if (arrayPointer == 0) {
    this.top = 0;
    }
    else {
    this.top = this.prevItem.top + this.prevItem.document.height - borWid;
    }
    this.left = 0;
    }
    else {
    this.className = "items";
    this.style.padding = 3;
    this.innerHTML = htmStr;

    this.style.backgroundColor = backCol;
    this.container = this.offsetParent;

    if (arrayPointer == 0) {
    this.style.pixelTop = 0;
    }
    else {
    this.style.pixelTop = this.prevItem.style.pixelTop + this.prevItem.offsetHeight - borWid;
    }
    this.style.pixelLeft = 0;
    }
    }

    function makeElement(whichEl,whichContainer) {
    if (arguments.length==1)
    whichContainer = (NS4) ? window : document.body;

    if (NS4) {
    eval(whichEl + "= new Layer(menuWidth,whichContainer)");
    }
    else {
    elStr = "<DIV ID=" + whichEl + " STYLE='position:absolute'></DIV>";
    whichContainer.insertAdjacentHTML("BeforeEnd",elSt r);
    }

    return eval(whichEl);
    }

    function makeTop() {
    while(eval("window.arMenu" + topCount)) {
    topArray = eval("arMenu" + topCount);
    topName = "elMenu" + topCount;

    topMenu = makeElement(topName);
    topMenu.setup = menuSetup;

    topItemCount = 0;
    for (i=0; i<topArray.length; i+=3) {
    topItemCount++;
    status = "Creazione menu in corso, attendere per favore: " + topCount + " / " + topItemCount;
    topItemName = "item" + topCount + "_" + topItemCount;
    topItem = makeElement(topItemName,topMenu);

    if (topItemCount >1)
    topItem.prevItem = eval("item" + topCount + "_" + (topItemCount-1));

    topItem.setup = itemSetup;
    topItem.setup(i,topArray);

    if (topItem.hasMore) makeSecond();
    }

    topMenu.setup(false,topItem);
    topCount++
    }

    status = (topCount-1) + " Creazione del menu completata"
    areCreated = true;
    }

    function makeSecond() {

    secondCount = topCount + "_" + topItemCount;

    secondArray = eval("arMenu" + secondCount);
    secondName = "elChild" + secondCount;

    secondMenu = makeElement(secondName);
    secondMenu.setup = menuSetup;

    secondItemCount=0;
    for (j=0; j<secondArray.length; j+=3) {
    secondItemCount++;
    secondItemName = "item" + secondCount +"_" + secondItemCount;

    secondItem = makeElement(secondItemName,secondMenu)

    if (secondItemCount >1)
    secondItem.prevItem = eval("item" + secondCount + "_" + (secondItemCount-1));

    secondItem.setup = itemSetup;
    secondItem.setup(j,secondArray);

    if (secondItem.hasMore) makeThird();
    }

    secondMenu.setup(true,secondItem,topMenu,topItem);
    }

    function makeThird() {
    thirdCounter = secondCount + "_" + secondItemCount

    thirdArray = eval("arMenu" + thirdCounter);
    thirdName = "elGrandChild" + thirdCounter;
    thirdMenu = makeElement(thirdName)

    thirdMenu.setup = menuSetup;

    thirdItemCount=0;
    for (k=0; k<thirdArray.length; k+=3) {
    thirdItemCount++;
    thirdItemName = "item" + thirdCounter + "_" + thirdItemCount;
    thirdItem = makeElement(thirdItemName,thirdMenu);

    if (thirdItemCount >1)
    thirdItem.prevItem = eval("item" + thirdCounter + "_" +(thirdItemCount-1));

    thirdItem.setup = itemSetup;
    thirdItem.setup(k,thirdArray);

    }

    thirdMenu.setup(true,thirdItem,secondMenu,secondIt em);
    }

    function linkIt() {
    location.href = this.linkText;
    }

    function showIt(on) {
    if (NS4) {this.visibility = (on) ? "show" : "hide"}
    else {this.style.visibility = (on) ? "visible" : "hidden"}
    }

    function keepInWindow() {
    scrBars = 20;

    if (NS4) {
    winRight = (window.pageXOffset + window.innerWidth) - scrBars;
    rightPos = this.left + menuWidth;

    if (rightPos > winRight) {
    if (this.hasParent) {
    parentLeft = this.parentMenu.left;
    newLeft = ((parentLeft-menuWidth) + childOverlap);
    this.left = newLeft;
    }
    else {
    dif = rightPos - winRight;
    this.left -= dif;
    }
    }

    winBot = (window.pageYOffset + window.innerHeight) - scrBars;
    botPos = this.top + this.fullHeight;

    if (botPos > winBot) {
    dif = botPos - winBot;
    this.top -= dif;
    }
    }
    else {
    winRight = (document.body.scrollLeft + document.body.clientWidth) - scrBars;
    rightPos = this.style.pixelLeft + menuWidth;

    if (rightPos > winRight) {
    if (this.hasParent) {
    parentLeft = this.parentMenu.style.pixelLeft;
    newLeft = ((parentLeft - menuWidth) + childOverlap);
    this.style.pixelLeft = newLeft;
    }
    else {
    dif = rightPos - winRight;
    this.style.pixelLeft -= dif;
    }
    }

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

    if (botPos > winBot) {
    dif = botPos - winBot;
    this.style.pixelTop -= dif;
    }
    }
    }

    function popUp(menuName,e){
    if (!areCreated) return;

    hideAll();

    currentMenu = eval(menuName);
    xPos = (NS4) ? e.pageX : event.x;
    yPos = (NS4) ? e.pageY : event.y;
    currentMenu.moveTo(xPos,yPos);

    currentMenu.keepInWindow()
    currentMenu.isOn = true;
    currentMenu.showIt(true);
    }

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

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

    function menuOut() {
    if (IE4 && event.srcElement.contains(event.toElement)) return;
    this.isOn = false;
    isOverMenu = false;
    if (IE4) allTimer = setTimeout("currentMenu.hideTree()",10);
    }

    function itemOver(){
    if (IE4 && event.srcElement.tagName == "IMG") return;

    if (NS4) {
    this.bgColor = overCol;
    }
    else {
    this.style.backgroundColor = overCol;
    this.style.color = overFnt;
    }

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

    if(this.hasMore) {
    if (NS4) {
    this.childX = this.container.left + (menuWidth - childOverlap);
    this.childY = this.pageY + childOffset;
    }
    else {
    this.childX = this.container.style.pixelLeft + (menuWidth - childOverlap);
    this.childY = this.style.pixelTop + this.container.style.pixelTop + childOffset;
    }

    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 && (event.srcElement.contains(event.toElement)
    || (event.fromElement.tagName=="IMG" && event.toElement.contains(event.fromElement))))
    return;

    if (NS4) {
    this.bgColor = backCol;
    if (!isOverMenu) {
    allTimer = setTimeout("currentMenu.hideTree()",10);
    }
    }
    else {
    this.style.backgroundColor = backCol;
    this.style.color = fntCol;
    }
    }

    function hideAll() {
    for(i=1; i<topCount; i++) {
    temp = eval("elMenu" + i);
    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 hideChildren(item) {
    if (this.visibleChild.hasChildVisible) {
    this.visibleChild.visibleChild.showIt(false);
    this.visibleChild.hasChildVisible = false;
    }

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

    function hideParents() {

    if (this.hasParent) {
    this.showIt(false);
    if (this.parentMenu.hasParent) {
    this.parentMenu.isOn = false;
    this.parentMenu.showIt(false);
    this.parentMenu.parentMenu.isOn = false;
    whichEl = this.parentMenu.parentMenu
    }
    else {
    this.parentMenu.isOn = false;
    whichEl = this.parentMenu;
    }
    }
    else {
    whichEl = this;
    }

    whichEl.hideTop();
    }

    function hideTop() {
    whichEl = this;
    this.hideTimer = setTimeout("whichEl.hideSelf()",mSecsVis);
    }

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

    function cancelSelect(){return false}

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

    window.onload = makeTop;


    --FINE--



    Volete anche i riferimenti che ho nell'HEAD? Grazieeeeeeeeeeee!

  6. #6
    prova a sostituire questa funzione, mettendo il nome del frame in cui vuoi che vengano aperte le pagine.
    codice:
    function linkIt() {
    parent.frames.NOMETUOFRAME.location.href = this.linkText;
    }

  7. #7

    Yessss!!!

    Funziona! Grande. Grazie mille davvero!


Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.