Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1

    visualizzare e nascondere i layer in javascript

    Salve a tutti ho un problema che non riesco a risolvere.
    Ho creato un menù a tendina dinamico in asp.
    Ci sono voci di testa e voci sotto testa.

    Es. testa: "Home, chi siamo, contatti"...
    Es. sottotesta "chi siamo": "storia, azienda, idea"...
    Es. sottotesta "contatti": "scrivici, compila il form"

    Lo script che ho fatto, mi crea un layer sotto ad ogni voce di menù, come se fosse un menù a tendina, e in javascript riesco a vedere il layer corrispondente alla voce di menu di testa.

    Es. Se passo sopra la voce di menù "chi siamo" riesco a far vedere le sue voci sottostanti, cioè : "storia, azienda, idea", poi quando passo sopra a contatti, mi vengono fuori le suo sottovoci.

    il mio problema è questo. Come faccio a nascondere gli altri layer quando passo sopra ad un'altra voce?

    Es. passo su "chi siamo", vedo il layer, passo su "contatti", si deve nascondere "chi siamo" e visualizzare "contatti", invece "chi siamo mi rimane aperto.

    Mi potete aiutare? mi potete scrivere il codice per nascondere i layer al di fuori di quello selezionato?

    Grazie mille
    Nel mondo succedono cose incredibili, l'incredibile è tra noi!

  2. #2
    OnMouseOver = visualizzi il layer al passaggio del mouse;
    OnMouseOut = nascondi il layer quando il mouse non è + sopra al link.

    Se sei riuscito a visualizzarlo penso che nn hai problemi a nasconderlo
    Visita www.castelsardo.net
    cittadina del nord sardegna

  3. #3
    no non sono riuscito a nasconderli.
    Non sò come fare.
    Mi compaiono tutti i layer, ma non riesco a nascondere gli altri.
    Me ne deve rimanere uno solo visibile, gli altri si devono nascondere .
    Come si fà?
    Nel mondo succedono cose incredibili, l'incredibile è tra noi!

  4. #4
    Ti posto uno script che crea in automatico Macromedia DW:
    questo lo metti nell'header:
    <script>
    function MM_showHideLayers() { //v6.0
    var i,p,v,obj,args=MM_showHideLayers.arguments;
    for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2];
    if (obj.style) { obj=obj.style; v=(v=='show')?'visible'v=='hide')?'hidden':v; }
    obj.visibility=v; }
    }
    </script>

    la funzione la richiami cosi:

    <td onMouseOver="MM_showHideLayers('LAYER_CHE_VUOI_VIS UALIZZARE','','show')" onMouseOut="MM_showHideLayers('LAYER_CHE_VUOI_NASC ONDERE','','hide')"><a class="menusx" href="ristorante.asp">[img]gif/arrow.gif[/img]

    Io li utilizzo all'interno di una tabella, ma le chiamate alle funzioni OnMouseOver e OnMuoseOut le puoi spostare.



    Visita www.castelsardo.net
    cittadina del nord sardegna

  5. #5
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    in un ciclo nascondi prima tutti i livelli e poi rendi visibile quello che ti serve resti visibile
    (oppure nel ciclo puoi contemporaneamente rendere invisibili tutti i livelli tranne quello che ti interessa)

    chiaramente x "ciclare" trai livelli è comodo avere una parte numerica nel nome, oppure avere tutti gli id dei livelli in un array
    se non riesci posta tutto il codice,
    ciao

  6. #6
    Questo è il codice che ho scritto

    <script language="JavaScript" type="text/JavaScript">
    <!--
    function MM_reloadPage(init) { //reloads the window if Nav4 resized
    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 show(a) {
    document.all["Layer"+a].style.visibility = "visible";
    }

    function hide(b) {
    var cquan;
    cquan = document.all.visual.value
    for (i=1;i<cquan;i++){
    if (document.all["Layer"+b].zindex == i){
    document.all["Layer"+b].style.visibility = "hidden";
    }
    }
    }

    //-->
    </script>
    </head>
    <%
    nomepagina = Trim((right(Request.ServerVariables("PATH_INFO"), len(Request.ServerVariables("PATH_INFO")) - InStrRev(Request.ServerVariables("PATH_INFO"),"/"))))
    set conn = server.CreateObject("ADODB.Connection")
    set rsmenu = Server.CreateObject("ADODB.Recordset")
    conn.ConnectionString = Application("dati")
    conn.open
    set rsmenu = conn.Execute ("SELECT * FROM TblMenu WHERE pagina = '" & nomepagina & "' ORDER BY Riferimento, Riferimento2 ASC")

    crif = ""
    ctdwidth = 150
    backcolor = " bgcolor='#006666'"
    ctrgt = "_blank"
    bcls = "menu"
    calg = "center"
    cheight = "16"
    cdivw = 0
    i=1
    f=1
    b=0
    colonna = ""
    clayer = ""

    ctable = "<table width='100%' height='" & cheight & "' cellpadding=0 cellspacing=0 border=0><tr>"

    while not rsmenu.eof
    if rsmenu.fields.item("riferimento").value <> colonna then
    if colonna <> "" then
    clayer = clayer & "</table></div>"
    end if
    cdivw = Int(150 * (f-1))
    clayer = clayer & "<div name=Layer" & i & " id=Layer" & i & " style='position:absolute; z-index: "& i & " ; left: "& cdivw &" px; top: 88 px; width: " & ctdwidth &"; visibility:hidden'><table width='" & ctdwidth & "' cellpadding='0' cellspacing='0' border='0'>"
    colonna = rsmenu.fields.item("riferimento").value
    i = i+1
    f = f+1
    b = b+1
    end if

    If rsmenu.fields.item("riferimento2").value = "-" then
    ctable = ctable & "<td width='" & ctdwidth & "' " & backcolor & " align='" & calg & "'>" & rsmenu.fields.item("descrizione").value & "</td>"
    else
    clayer = clayer & "<tr><td align='" & calg & "' " & backcolor & ">" & rsmenu.fields.item("descrizione").value & "</td></tr>"
    end if

    rsmenu.movenext()
    wend


    clayer = clayer & "<input type=hidden name=visual value=" & i & "></table></div>"


    ctable = ctable & "</tr>"
    ctable = ctable & "</table>"
    %>




    La funzione hide non funziona.
    Come la devo scrivere e a quale elemento devo associarla? al layer o alla voce di testa del menù?

    Di javascript non sò molto, quindi se potete, scrivetemi il codice filo per segno.
    Vi ringrazio
    Tex78
    Nel mondo succedono cose incredibili, l'incredibile è tra noi!

  7. #7
    Giusto ha ragione Xinod non stavo considerando il fatto che il livello sul quale sposti il mouse deve rimanere visibile sino a quando non ti sposti su un altra voce
    Visita www.castelsardo.net
    cittadina del nord sardegna

  8. #8
    se sapete come si fà un ciclo con i miei elemnti, scrivetemelo vi prego.
    Nel mondo succedono cose incredibili, l'incredibile è tra noi!

  9. #9
    prova così:

    If rsmenu.fields.item("riferimento2").value = "-" then
    ctable = ctable & "<td width='" & ctdwidth & "' " & backcolor & " align='" & calg & "'>" & rsmenu.fields.item("descrizione").value & "</td>"
    Visita www.castelsardo.net
    cittadina del nord sardegna

  10. #10
    non mi funziona credo, perchè non mi dice niente e il problema rimane.
    Ma il ciclo della funzione hide, l'ho scritto giusto?
    Tnx
    Nel mondo succedono cose incredibili, l'incredibile è tra noi!

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 © 2024 vBulletin Solutions, Inc. All rights reserved.