Visualizzazione dei risultati da 1 a 7 su 7

Discussione: richiamare menu

  1. #1
    Utente di HTML.it L'avatar di licio
    Registrato dal
    Sep 2002
    Messaggi
    170

    richiamare menu

    Premetto che sono più che ignorante in javascript..........

    Ho uno script abbastanza complesso (a mio parere ovviamente) negli heads che mi crea un menu a discesa.

    Questo script viene richiamato nella pagina tramite

    <body bgcolor="#ffffff" onload="initSwipeMenu()" onload="if(parent.frames[0]&&parent.frames['navig'].Go)parent.frames['navig'].Go();" scroll=no topmargin=0 marginheight=0 ;>

    in questo modo il menu mi apre all'inizio della pagina. Se volessi farlo apparire in un altro posto (es in una cella) come faccio a richiamare lo script lì?

    Grazie

  2. #2
    Prova a cambiare il topmargin e marginheight...se non cambia nulla vuol dire che la posizione è settata all'interno della script

    (postmetto ke neanke io sono 1 cima in js)
    La più grande forza a disposizione dell'umanità è la non violenza (Ghandi).
    (15/06/2003 - 16 points, 17 rembounds and 1 standing ovation x Admiral David Robinson ... San Antonio Spurs~ 2003/5 NBA champions)

  3. #3
    Utente di HTML.it L'avatar di licio
    Registrato dal
    Sep 2002
    Messaggi
    170
    non funge........... e non mi pare sia settata nello script la posizione

  4. #4
    Se posti il codice forse posso aiutarti
    La più grande forza a disposizione dell'umanità è la non violenza (Ghandi).
    (15/06/2003 - 16 points, 17 rembounds and 1 standing ovation x Admiral David Robinson ... San Antonio Spurs~ 2003/5 NBA champions)

  5. #5
    Utente di HTML.it L'avatar di licio
    Registrato dal
    Sep 2002
    Messaggi
    170
    eccolo, un po' lungo:

    <script language="JavaScript">
    is = {};
    is.agent = navigator.userAgent.toLowerCase();
    is.ie4 = (is.agent.indexOf("msie 4") != -1);
    is.ie5 = (is.agent.indexOf("msie 5") != -1);
    is.ie55 = (is.agent.indexOf("msie 5.5") != -1);
    is.ie6 = (is.agent.indexOf("msie 6") != -1);
    is.ns4 = (is.agent.indexOf("4") != -1 && document.layers);
    is.ns6 = (is.agent.indexOf("netscape6") != -1 && is.agent.indexOf("6.1") == -1);
    is.ns61 = (is.agent.indexOf("netscape6/6.1") != -1);
    is.ns6x = (is.agent.indexOf("netscape6") != -1);
    is.ie = (is.ie4 || is.ie5 || is.ie55 || is.ie6);
    is.moz = (is.agent.indexOf("gecko")!= -1);
    is.mac = (is.agent.indexOf("mac") != -1);
    is.win = (is.agent.indexOf("win") != -1);
    is.iestrict = (is.win && is.ie6 && document.compatMode == "CSS1Compat");
    is.macstrict = (is.ie5 && is.mac && document.doctype && document.doctype.name.indexOf(".dtd") != -1);
    is.strict = (is.iestrict || is.macstrict);
    is.dom = (is.ie5 || is.ie55 || is.ie6 || is.ns6x || is.moz);
    var css_px = (is.ns4) ?"" : "px";

    function menuObj(obj, par, nst) {
    page = new Object();
    page.width = (is.ns6 || is.ns61 || is.ns6 || is.ns4 || is.moz) ? innerWidth : document.body.clientWidth;
    page.height = (is.ns6 || is.ns61 || is.ns6 || is.ns4 || is.moz) ? innerHeight : document.body.clientHeight;
    if(!is.ns4) this.lyr = (is.dom) ?document.getElementById(obj) : document.all[obj];
    else this.lyr = (!nst) ?document.layers[obj] : document.layers[nst].document.layers[obj];
    this.sty = (!is.ns4) ? this.lyr.style : this.lyr;
    if(par) this.parent = par;
    this.obj = obj + "SwipeLayer";
    eval(this.obj + "= this");
    }

    menuObj.prototype.timer = null;
    menuObj.prototype.wipe = 0;
    menuObj.prototype.offX = Function('oX = (is.ie || is.ns61 || is.moz) ?this.lyr.offsetLeft : parseInt(this.sty.left);return oX');
    menuObj.prototype.offY = Function('oY = (is.ie || is.ns61 ||is.moz) ?this.lyr.offsetTop : parseInt(this.sty.top);return oY;');
    menuObj.prototype.offW = Function('oW = (!is.ns4) ?this.lyr.offsetWidth : this.lyr.clip.width; return oW;')
    menuObj.prototype.offH = Function('oH = (!is.ns4) ?this.lyr.offsetHeight : this.lyr.clip.height; return oH;')
    menuObj.prototype.maxWipe = function() {
    if(is.dom) return this.offH()+10;
    if(is.ns4) return (sAtt.height*this.lyr.document.layers.length)+10;
    }

    wipeMenu.prototype.addMain = function(name, hasSub, txt, url) {
    menuName = this.name;
    wipePos = this.pos;
    mAtt = this.mAtt, sAtt = this.sAtt;
    if(this.main[name]) return;
    if(is.ns4) {
    var mainMenu = new Layer(mAtt.width);
    var styStr = "text-decoration:none; color:"+mAtt.fg_off+"; padding:"+((mAtt.height/2)-(mAtt.font_size/2)-1)+"px 0px 0px 0px; font-size:"+mAtt.font_size+"px; font-family:"+mAtt.font+";"
    var pd = "padding:0px 6px 0px 6px;"
    mainMenu.document.write('<div align="'+mAtt.align+'" style="'+pd+'">'+txt+'</div>');
    mainMenu.document.close();
    mainMenu.captureEvents(Event.MOUSEUP);
    mainMenu.resizeTo(mAtt.width,mAtt.height)
    if(mAtt.bg_off.indexOf("url") != -1) {
    mainMenu.background.src = mAtt.bg_off.substring(4,mAtt.bg_off.length-1);
    mainMenu.background.src = mAtt.bg_off.substring(4,mAtt.bg_off.length-1);
    } else mainMenu.bgColor = mAtt.bg_off;
    mainMenu.visibility = "visible";
    }

    if(is.dom) {
    var mainMenu = document.createElement("DIV");
    var pf = Math.ceil(((mAtt.height-mAtt.font_size)/2)-2); var wf = (is.ns6x || is.strict) ?12 : 0;
    var pf2 = (mAtt.height%2 == 0) ?1 : 0;
    mainMenu.innerHTML = txt;
    mainMenu.id = name+menuName;
    var styStr = "position:absolute; width:"+(mAtt.width-wf)+"px; border:solid "+mAtt.border+"px "+mAtt.border_color+"; color:"+mAtt.fg_off+"; text-align:"+mAtt.align+"; font-size:"+mAtt.font_size+"px; font-family:"+mAtt.font+"; padding:"+pf+"px 6px "+(pf+pf2)+"px 6px; background:"+mAtt.bg_off+"; cursorointer; cursor:hand;"
    mainMenu.style.cssText = styStr;
    mainMenu.setAttribute("style", styStr);
    document.body.appendChild(mainMenu);
    }

    if(is.ie4) {
    var pf = Math.ceil(((mAtt.height-mAtt.font_size)/2)-2);
    var pf2 = (mAtt.height%2 == 0) ?1 : 0;
    alert(pf+pf2)
    var styStr = "position:absolute; width:"+(mAtt.width)+"px; border:solid "+mAtt.border+"px "+mAtt.border_color+"; color:"+mAtt.fg_off+"; text-align:"+mAtt.align+"; font-size:"+mAtt.font_size+"px; font-family:"+mAtt.font+"; padding:"+(pf)+"px 6px "+(pf)+"px 6px; background:"+mAtt.bg_off+"; cursor:hand;"
    var mM = '<div id="'+name+menuName+'" style="'+styStr+'">'+txt+'</div>';
    document.body.insertAdjacentHTML("beforeEnd", mM);
    var mainMenu = document.all[name+menuName];
    }

    mainMenu.onmouseover = Function('if('+hasSub+')'+menuName+'.subs["'+name+'"].show("'+wipePos+'");over_out(this, "'+mAtt.bg_on+'", "'+mAtt.fg_on+'")')
    mainMenu.onmouseout = Function('if('+hasSub+')'+menuName+'.subs["'+name+'"].hide();over_out(this, "'+mAtt.bg_off+'", "'+mAtt.fg_off+'");')
    mainMenu.onmousedown = Function('location.href = "'+url+'"');

    this.main[name] = new menuObj(mainMenu.id);
    this.mainNum[this.mainNum.length] = this.main[name];

    if(!hasSub) return;
    if(is.ns4) {
    var subC = new Layer(sAtt.width);
    subC.resizeTo(sAtt.width,0);
    subC.visibility = "hidden";
    }

    if(is.dom) {
    var subC = document.createElement("DIV");
    subC.id = name+menuName+"Sub";
    var wf = (is.ns6x) ?4 : 0;
    var styStr = "position:absolute; visibility:hidden; clip:rect(0px "+(sAtt.width+20)+"px 0px 0px); border:solid 1px "+sAtt.border_color+"; border-width:"+sAtt.border+"px 0px 0px 0px; cursor:default;"
    subC.style.cssText = styStr;
    subC.setAttribute("style", styStr);
    document.body.appendChild(subC);
    }

    if(is.ie4) {
    var styStr = "position:absolute; visibility:hidden; clip:rect(0px "+(sAtt.width+20)+"px 0px 0px); border:solid 1px "+sAtt.border_color+"; border-width:"+sAtt.border+"px 0px 0px 0px; cursor:default;"
    var sC = '<div id="'+name+menuName+'Sub" style="'+styStr+'"></div>';
    document.body.insertAdjacentHTML("beforeEnd", sC);
    var subC = document.all[name+menuName+"Sub"];
    }
    this.subs[name] = new menuObj(subC.id, this.main[name]);
    subC.onmouseover = Function(menuName+'.subs["'+name+'"].show("'+wipePos+'");');
    subC.onmouseout = Function(menuName+'.subs["'+name+'"].hide();');
    }

    wipeMenu.prototype.addSub = function(name, parent, txt, url) {
    if(is.ns4) {
    var tempsub = new Layer(sAtt.width, this.subs[parent].lyr);
    var styStr = "text-decoration:none; color:"+sAtt.fg_off+"; padding:"+((sAtt.height/2)-(sAtt.font_size/2)-2)+"px 0px 0px 0px; font-size:"+sAtt.font_size+"px; font-family:"+sAtt.font+";"
    var pd = "padding:0px 6px 0px 6px;"
    tempsub.document.write('<div align="'+sAtt.align+'" style="'+pd+'">'+txt+'</div>');
    tempsub.document.close();
    tempsub.captureEvents(Event.MOUSEUP);
    //this.subs[parent].lyr.resizeTo(sAtt.width,(sAtt.height*this.subs[parent].lyr.document.layers.length))
    tempsub.resizeTo(sAtt.width,sAtt.height);
    tempsub.moveTo(0,(sAtt.height*(this.subs[parent].lyr.document.layers.length-1)));
    if(sAtt.bg_off.indexOf("url") != -1) {
    tempsub.background.src = sAtt.bg_off.substring(4,sAtt.bg_off.length-1);
    tempsub.background.src = sAtt.bg_off.substring(4,sAtt.bg_off.length-1);
    } else tempsub.bgColor = sAtt.bg_off;
    tempsub.visibility = "inherit";
    }
    if(is.dom) {
    var tempsub = document.createElement("DIV");
    var pf = Math.ceil(((mAtt.height-mAtt.font_size)/2)-2); var wf = (is.ns6x || is.strict) ?12 : 0;
    var pf2 = (mAtt.height%2 == 0) ?1 : 0;
    tempsub.id = name+menuName+"SubItem";
    tempsub.innerHTML = txt;
    var styStr = "width:"+(sAtt.width-wf)+"px; border:solid "+sAtt.border+"px "+sAtt.border_color+"; border-top-width:0px; color:"+sAtt.fg_off+"; text-align:"+sAtt.align+"; font-size:"+sAtt.font_size+"px; font-family:"+sAtt.font+"; padding:"+pf+"px 6px "+(pf+pf2)+"px 6px; background:"+sAtt.bg_off+"; cursorointer; cursor:hand;"
    tempsub.style.cssText = styStr;
    tempsub.setAttribute("style", styStr);
    this.subs[parent].lyr.appendChild(tempsub);
    }
    if(is.ie4) {
    var pf = Math.ceil(((mAtt.height-mAtt.font_size)/2)-2);
    var pf2 = (mAtt.height%2 == 0) ?1 : 0;
    var styStr = "width:"+(sAtt.width)+"px; border:solid "+sAtt.border+"px "+sAtt.border_color+"; border-top-width:0px; color:"+sAtt.fg_off+"; text-align:"+sAtt.align+"; font-size:"+sAtt.font_size+"px; font-family:"+sAtt.font+"; padding:"+(pf+pf2)+"px 6px "+(pf+pf2)+"px 6px; background:"+sAtt.bg_off+"; cursor:hand;";
    var ts = '<div id="'+name+menuName+'SubItem" style="'+styStr+'" onmouseover="over_out(this, \''+sAtt.bg_on+'\', \''+sAtt.fg_on+'\')" onmouseout="over_out(this, \''+sAtt.bg_off+'\', \''+sAtt.fg_off+'\')" onmousedown="location.href=\''+url+'\'">'+txt+'</div>';
    this.subs[parent].lyr.insertAdjacentHTML("beforeEnd", ts);
    }
    if(!is.ie4) {
    tempsub.onmouseover = Function('over_out(this, "'+sAtt.bg_on+'", "'+sAtt.fg_on+'")');
    tempsub.onmouseout = Function('over_out(this, "'+sAtt.bg_off+'", "'+sAtt.fg_off+'")');
    tempsub.onmousedown = Function('location.href = "'+url+'"');
    }
    }
    menuObj.prototype.show = function(p) {
    if(p == "h") {
    this.sty.left = this.parent.offX()+css_px;
    this.sty.top = this.parent.offY()+this.parent.offH()+css_px;
    } else {
    this.sty.left = this.parent.offX()+this.parent.offW()+css_px;
    this.sty.top = this.parent.offY()+css_px;
    }
    this.sty.visibility = "visible";
    this.sty.zIndex = "12";
    this.doShow();
    }
    menuObj.prototype.doShow = function() {
    clearTimeout(this.timer)
    this.clipIt(0, this.offW(), this.wipe, 0);
    this.wipe += 10;
    if(this.wipe <= this.maxWipe()) this.timer = setTimeout(this.obj + ".doShow()", 45)
    }
    menuObj.prototype.hide = function() {
    clearTimeout(this.timer)
    this.clipIt(0, this.offW(), this.wipe-10, 0);
    this.wipe -= 10;
    if(this.wipe >= 0) this.timer = setTimeout(this.obj + ".hide()", 50);
    else this.sty.visibility = "hidden";
    }
    function over_out(obj, bg, fg) {
    if(is.ns4) {
    if(bg.indexOf("url") != -1) obj.background.src = bg.substring(4,bg.length-1)
    else obj.background.src = "", obj.bgColor = bg;
    }
    else {
    obj.style.background = bg;
    obj.style.color = fg;
    }
    }
    menuObj.prototype.clipIt = function(t,r,b,l) {
    if(!is.ns4) this.sty.clip = "rect("+t+"px, "+r+"px, "+b+"px, "+l+"px)"
    else {
    this.sty.clip.top = t;
    this.sty.clip.right = r;
    this.sty.clip.bottom = b;
    this.sty.clip.left = l;
    }
    }
    wipeMenu.prototype.buildMenu = function(x,y,spacing) {
    this.mainNum[0].sty.left = x+css_px;
    this.mainNum[0].sty.top = y+css_px;
    if(!is.ns4 && spacing == 0) var spacing = -this.mAtt.border;
    for(i = 1; i < this.mainNum.length; i++) {
    if(this.pos == "h") {
    this.mainNum[i].sty.left = this.mainNum[i-1].offX()+this.mainNum[i-1].offW()+spacing+css_px;
    this.mainNum[i].sty.top = this.mainNum[i-1].offY()+css_px;
    } else {
    this.mainNum[i].sty.left = this.mainNum[i-1].offX()+css_px;
    this.mainNum[i].sty.top = this.mainNum[i-1].offY()+this.mainNum[i-1].offH()+spacing+css_px;
    }
    }
    }
    function wipeMenu(menu,p,ma,sa) {
    this.name = menu;
    this.pos = p;
    this.mAtt = ma;
    this.sAtt = (!sa) ?ma : sa;
    this.main = [];
    this.mainNum = [];
    this.subs = [];
    }
    function preLoadMenuImages() {
    if(!img) var img = [];
    var imgs = preLoadMenuImages.arguments;
    for(i = 0; i < imgs.length; i++) {
    img[i] = new Image();
    img[i].src = imgs[i];
    }
    }
    if(document.layers) {
    var pX = innerWidth;
    var pY = innerHeight;
    onresize= function(){
    if(pX!= innerWidth || pY!= innerHeight) history.go(0);
    }
    }
    function swapIt(img, src, id) {
    if(is.ie4 || is.ns4 && !id) document.images[img].src = src;
    if(is.ns4 && id) document.layers[id].document.images[img].src = src;
    if(is.dom) document.getElementById(img).setAttribute('src', src);
    }

    function initSwipeMenu() {
    preLoadMenuImages("button_on.gif", "button_off.gif");
    menuAtt = new Array();
    menuAtt["width"] = 120;
    menuAtt["height"] = 20;
    menuAtt["align"] = "center";
    menuAtt["font"] = "Verdana";
    menuAtt["font_size"] = 10;
    menuAtt["bg_off"] = "#0000FF";
    menuAtt["bg_on"] = "#00FFFF";
    menuAtt["fg_off"] = "white";
    menuAtt["fg_on"] = "red";
    menuAtt["border"] = 1;
    menuAtt["border_color"] = "white";
    //Menu 1
    myMenu = new wipeMenu("myMenu", "h", menuAtt);

    myMenu.addMain("about", true, "Getting Started", "index.htm");
    myMenu.addSub("aboutSub1", "about", "Introduction", "intro1.htm");
    myMenu.addSub("aboutSub2", "about", "What is SVG?", "whatsvg2.htm");
    myMenu.addSub("aboutSub3", "about", "SVG Structure", "structure3.htm");

    myMenu.buildMenu(10,10,2);

    }

    </script>

  6. #6
    Ciao Licio
    Dopo uno studio + o - approfondito (ripeto ke di js ne conosco poco) credo di aver trovato la soluzione...
    nello script, dove si trova "if(is.dom)" e "if(is.ie4)"
    c'è la variabile styStr che contiene un position:absolute un width:"+(mAtt.width-wf) ed altro ancora...
    prova ad aggiungere qui un pò di pixel x abbassarlo



    P.S. Se non va bene ti consiglio di kiedere aiuto a Dennis (o ai moderatori) ke sono sicuramente + esperti di me in materia
    La più grande forza a disposizione dell'umanità è la non violenza (Ghandi).
    (15/06/2003 - 16 points, 17 rembounds and 1 standing ovation x Admiral David Robinson ... San Antonio Spurs~ 2003/5 NBA champions)

  7. #7
    Utente di HTML.it L'avatar di licio
    Registrato dal
    Sep 2002
    Messaggi
    170
    uhm, no...............

    secondo me le variabili da cambiare sono qui:

    menuObj.prototype.timer = null;
    menuObj.prototype.wipe = 0;
    menuObj.prototype.offX = Function('oX = (is.ie || is.ns61 || is.moz) ?this.lyr.offsetLeft : parseInt(this.sty.left)+;return oX');
    menuObj.prototype.offY = Function('oY = (is.ie || is.ns61 ||is.moz) ?this.lyr.offsetTop : parseInt(this.sty.top);return oY;');
    menuObj.prototype.offW = Function('oW = (!is.ns4) ?this.lyr.offsetWidth : this.lyr.clip.width; return oW;')
    menuObj.prototype.offH = Function('oH = (!is.ns4) ?this.lyr.offsetHeight : this.lyr.clip.height; return oH;')
    menuObj.prototype.maxWipe = function() {
    if(is.dom) return this.offH()+10;
    if(is.ns4) return (sAtt.height*this.lyr.document.layers.length)+10;
    }


    ovviamente non so come :tongue:

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.