Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    Un menù di navigazione scorrevole che non funziona

    Ho dei problemi con un menù di navigazione interna scorrevole trovato sul sito www.asbafo.net. Nell'esempio scaricabilefunziona ma nella pagina dove vorrei inserirlo sembra entrare in conflitto con il puntatore del mouse rimanendogli sempre ad una certa distanza causando spiacevoli dilatazioni della pagina e la comparsa della scrollbar orizzontale. Vi ringrazio.

    Esempio:
    http://www.asbafo.net/ja_menu/menu_083/menu_083.zip

  2. #2

    mi spiego meglio

    Voglio inserire 2 javascript su una pagina web: un menù di navigazione interno scorrevole e dei popup informativi che si aprono automaticamente quando il puntatore del mouse si posiziona su certi link.
    Il menù di navigazione funziona grazie ad un file .js chiamato menu.js richiamato sul codice html della pagina
    <script LANGUAGE="JavaScript" src="menu.js"></script>
    la sintassi del file menu.js è la seguente:

    function setVariables() {
    if (navigator.appName == "Netscape") {
    v = ".top=";
    h = ".left=";
    dS = "document.";
    sD = "";
    y = "window.pageYOffset";
    x = "window.pageXOffset";
    iW = "window.innerWidth";
    iH = "window.innerHeight";
    }
    else {
    h = ".pixelLeft=";
    v = ".pixelTop=";
    dS = "";
    sD = ".style";
    y = "document.body.scrollTop";
    x = "document.body.scrollLeft";
    iW = "document.body.clientWidth";
    iH = "document.body.clientHeight";
    }
    xyz = 500;
    innerX = eval(iW) - 130;
    innerY = eval(iH) - 80;
    object = "logo";
    checkLocationA();
    }
    movex = 0;
    movey = 0;
    xdiff = 0;
    ydiff = 0;
    ystart = 0;
    xstart = 0;
    function checkLocation() {
    yy = eval(y);
    xx = eval(x);
    ydiff = ystart - yy;
    xdiff = xstart - xx;
    if ((ydiff < (-1)) || (ydiff > (1))) movey = Math.round(ydiff / 10), ystart -= movey;
    if ((xdiff < (-1)) || (xdiff > (1))) movex = Math.round(xdiff / 10), xstart -= movex;
    eval(dS + object + sD + v + (ystart + innerY));
    eval(dS + object + sD + h + (xstart + innerX));
    setTimeout("checkLocation()", 10);
    }
    function checkLocationA() {
    ystart = eval(y);
    xstart=eval(x);
    }
    function switchLogo(abc) {
    if (abc == "menu") {
    eval(dS + object + sD + v + 0);
    eval(dS + object + sD + h + (-200));
    object = abc;
    }
    else xyz = setTimeout("delayLogo()", 2000)
    }
    function delayLogo() {
    eval(dS + object + sD + v + 0);
    eval(dS + object + sD + h + (-200));
    object = 'logo';
    }
    function setlimit() {
    if (navigator.appName == "Netscape") {
    iW = "window.innerWidth";
    iH = "window.innerHeight";
    }
    else {
    iW = "document.body.clientWidth";
    iH = "document.body.clientHeight";
    }
    innerX = eval(iW) - 130;
    innerY = eval(iH) - 80;
    }
    window.onresize=setlimit
    function MM_reloadPage(init) {
    if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
    document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
    else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
    }
    MM_reloadPage(true);
    function MM_findObj(n, d) {
    var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
    if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
    for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
    if(!x && d.getElementById) x=d.getElementById(n); return x;
    }
    //-->

    invece il javascript che fa funzionare le finestre di popup che si mostrano posizionando il puntatore del mouse su determinati link è inserito direttamente nel codice html della pagina e ha il seguente codice:

    <script language="javaScript">
    var tickerwidth=200
    var tickerheight=200
    var tickerpadding=5
    var borderwidth=2
    var fnt="Verdana"
    var fntsize=8
    var fntsizelastletter=9
    var fntcolor="FFFFFF"
    var fntcolorlastletter="00AA00"
    var fntweight=3
    var backgroundcolor="0000FF"
    var standstill=2000
    var speed=40
    var xdistance=-250
    var ydistance=-100
    var timer
    var topposition=0
    var leftposition=0
    var x,y
    var i_substring=0
    var i_presubstring=0
    var i_message=0
    var message
    var messagecontent=""
    var messagebackground=""
    var messagepresubstring=""
    var messageaftersubstring=""
    fntweight=fntweight*100
    function getmessagebackground() {
    messagebackground="<table border="+borderwidth+" width="+tickerwidth+" height="+tickerheight+" cellspacing=0 cellpadding=0><tr><td valign=top bgcolor='"+backgroundcolor+"'>"
    messagebackground+="</td></tr></table>"
    }
    function getmessagecontent() {
    messagecontent="<table border=0 cellspacing=0 cellpadding="+tickerpadding+" width="+tickerwidth+" height="+tickerheight+"><tr><td valign=top>"
    messagecontent+="<span style='position:relative; font-family:"+fnt+";color:"+fntcolor+";font-size:"+fntsize+"pt;font-weight:"+fntweight+"'>"
    messagecontent+="<font color='"+fntcolor+"'>"
    messagecontent+=messagepresubstring
    messagecontent+="</font>"
    messagecontent+="</span>"
    messagecontent+="<span style='position:relative; font-family:"+fnt+";color:"+fntcolor+";font-size:"+fntsizelastletter+"pt;font-weight:900'>"
    messagecontent+="<font color='"+fntcolorlastletter+"'>"
    messagecontent+=messageaftersubstring
    messagecontent+="</font>"
    messagecontent+="</span>"
    messagecontent+="</td></tr></table>"
    }
    function showticker() {
    if (i_substring<=message.length-1) {
    i_substring++
    i_presubstring=i_substring-1
    if (i_presubstring<0) {i_presubstring=0}
    messagepresubstring=message.substring(0,i_presubst ring)
    messageaftersubstring=message.substring(i_presubst ring,i_substring)
    getmessagecontent()
    if (document.all) {
    ticker.innerHTML=messagecontent
    timer=setTimeout("showticker()", speed)
    }
    if (document.layers) {
    document.ticker.document.write(messagecontent)
    document.ticker.document.close()
    timer=setTimeout("showticker()", speed)
    }
    }
    else {
    clearTimeout(timer)
    }
    }
    function hideticker() {
    clearTimeout(timer)
    i_substring=0
    i_presubstring=0
    if (document.all) {
    document.all.ticker.style.visibility="hidden"
    document.all.tickerbg.style.visibility="hidden"
    }
    if (document.layers) {
    document.ticker.visibility="hidden"
    document.tickerbg.visibility="hidden"
    }
    }
    function showmessage(linkmessage) {
    getmessagebackground()
    message=linkmessage

    i_substring=0
    i_presubstring=0
    leftposition=x+xdistance
    topposition=y+ydistance
    if (document.all) {
    document.all.ticker.style.posLeft=leftposition
    document.all.ticker.style.posTop=topposition
    document.all.tickerbg.style.posLeft=leftposition
    document.all.tickerbg.style.posTop=topposition
    tickerbg.innerHTML=messagebackground
    document.all.ticker.style.visibility="visible"
    document.all.tickerbg.style.visibility="visible"
    showticker()
    }
    if (document.layers) {
    document.ticker.left=leftposition
    document.ticker.top=topposition
    document.tickerbg.left=leftposition
    document.tickerbg.top=topposition
    document.tickerbg.document.write(messagebackground )
    document.tickerbg.document.close()
    document.ticker.visibility="visible"
    document.tickerbg.visibility="visible"
    showticker()
    }
    }
    function handlerMM(e){
    x = (document.layers) ? e.pageX : document.body.scrollLeft+event.clientX
    y = (document.layers) ? e.pageY : document.body.scrollTop+event.clientY
    }
    if (document.layers){
    document.captureEvents(Event.MOUSEMOVE);
    }
    document.onmousemove = handlerMM;
    </script>
    entrambi vanno inseriti tra i tag <head></head> ma il menù non funziona correttamente se viene seguito o preceduto dal codice del secondo javascript. Qualcuno può aiutarmi?

  3. #3

    Una prova

    Ho aperto il blocco note e scritto il codice del javascript popup privato dei tag <script> di apertura e chiusura, ho salvato il file con estensione .js e messo nella stessa cartella della pagina.

    Poi ho scritto il richiamo sul codice html della pagina:

    <script LANGUAGE="JavaScript" src="menu.js"></script>
    <script LANGUAGE="JavaScript" src="popup.js"></script>

    Il problema però rimane. Praticamente gli script funzionano ma il menu scorrevole rimane sempre ad una certa distanza dal puntatore del mouse e la pagina si dilata (sia orizzontalmente che verticalmente) a seconda della posizione del puntatore del mouse perchè il menù scorrevole esce fuori dallo schermo. Secondo me lo script del menù "prende in prestito" dallo script dei popup le coordinate che indicano la distanza dei popup dal puntatore del mouse sui link! Aiuto!

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.