Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it L'avatar di Darcken
    Registrato dal
    Jun 2001
    Messaggi
    237

    Problema coordinate mouse

    Salve a tutti, ho un problema sulle coordinate del mouse che javascript mi passa in un iframe.

    Praticamente ho una pagina in un iframe che mi carica dei record, e vorrei poter implementare un menu con il tasto destro (cosa che gia' fa correttamente).

    Il problema sta nel come mi posiziona il menu.

    Finchè non uso lo scroll il menu viene posizionato correttamente di fianco al cursore del mouse, ma non appena scrollo e richiamo la funzione, il menu viene posizionato in alto al posto che di fianco al mouse.

    Questo è lo script in javascript:

    function MenuTxDx()
    {
    var sinistra = window.event.x;
    var sopra = window.event.y;
    menu.style.display = "";
    pos.style.left = sinistra;
    pos.style.top = sopra;
    return false;
    }

    e di fatti funziona correttamente. questo è il CSS:

    div.menuLinks {
    background: #FFFFFF; /* definisce il colore di sfondo */
    color: #000000; /* definisce il colore della voce del menu */
    font-size: 10px; /* definisce le dimensioni del testo */
    font-family: Verdana; /* definisce il carattere utilizzato */
    width: 60px; /* definisce la larghezza del layer */
    /* height: 10px; */
    padding: 3px; /* definisce l'area interna del singolo link */
    border-top: Solid 1px #000000; /* definisce il bordo superiore */
    border-left: Solid 1px #000000; /* definisce il bordo sinistro */
    border-right: Solid 1px #000000; /* definisce il bordo destro */
    border-bottom: Solid 1px #000000; /* definisce il bordo inferiore */
    cursor: Default; /* definisce il puntatore del mouse */
    }


    Questo è il menu:

    <div id="menu" style="display: None;">
    <div id ="pos" style="position: Absolute;">
    <div class="menuLinks" onMouseOver="this.style.color='#FFFFFF';this.style .background='#003366'" onMouseOut="this.style.color='#000000';this.style. background='#FFFFFF'" onClick="link('#')"><center>Modifica</center></div>
    <div class="menuLinks" onMouseOver="this.style.color='#FFFFFF';this.style .background='#003366'" onMouseOut="this.style.color='#000000';this.style. background='#FFFFFF'" onClick="link('#')"><center>Cancella</center></div>
    </div>
    </div>

    e questo è il link che richiama il tutto:

    Cliccami con il tasto destro

    Il menu compare, ho solo problema quando scrollo l'iframe che contiene appunto queste righe di codice.

    Se qualcuno gentilmente saprebbe darmi una dritta per far comparire correttamente il menu di fianco alla voce dove clicco anche quando scrollo mi farebbe un grandissimo piacere.

    Grazie a tutti e scusate il post "lungo"

  2. #2
    Utente di HTML.it L'avatar di albis
    Registrato dal
    May 2002
    Messaggi
    912
    potresti aggiungere il
    document.body.scrollTop
    Forza la magica ROMA

  3. #3
    Utente di HTML.it L'avatar di Darcken
    Registrato dal
    Jun 2001
    Messaggi
    237

    Ho Risolto

    Posto il modo in cui ho risolto il problema per eventuali aiuti.

    praticamente nel ciclo che carica i record ho creato una variabile chiama y_mouse che incremento via asp ad ogni ciclo in base all'altezza del <tr> dove dovrebbe comparire il menu (la posizione left invece l'ho lasciata invariata in quanto non crea problemi).

    in poche parole ho questo in ASP (php è uguale cmq il sistema):

    y_mouse = 10

    Do While Not rs.Eof
    <tr>
    <td><a href="#" onContextMenu="return MenuTxDx('<%=y_mouse%>')">
    Cliccami con il tasto destro </a>
    </td>
    </tr>
    y_mouse = y_mouse + 10
    rs.movenext
    Loop

    mentre in javascript ho cambiato cosi':

    function MenuTxDx(y_mouse)
    {
    var sinistra = window.event.x;
    var sopra = y_mouse;
    menu.style.display = "";
    pos.style.left = sinistra;
    pos.style.top = sopra;
    return false;
    }

    in modo che lo script non calcoli in automatico l'asse y del mouse, ma la prenda da un calcolo fatto da asp.

    Grazie cmq a tutti, ciao

  4. #4
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    ma non e' una buona soluzione la tua:
    navigo, x motivi miei, con i caratteri grandi e il tuo sistema si va a far benedire...

    aggiungi lo scrollTop come ti ha detto albis

  5. #5
    Utente di HTML.it L'avatar di Darcken
    Registrato dal
    Jun 2001
    Messaggi
    237
    in parte hai ragione, non è molto "pulita" come cosa.

    i caratteri grandi invece non sono un problema perchè, avendo i css, non si possono modificare da browser

  6. #6
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    Originariamente inviato da Darcken
    i caratteri grandi invece non sono un problema perchè, avendo i css, non si possono modificare da browser
    :rollo: questo presupposto e' totalmente errato...
    non tiene conto di alcun browser/dispositivo diverso da ...IE
    ciao

  7. #7
    Utente di HTML.it L'avatar di Darcken
    Registrato dal
    Jun 2001
    Messaggi
    237
    ma guarda ho provato il tutto con mozilla e, a parte il menu che non esce ovviamente, il resto quali dimensioni o altro non mi danno problemi anche se ingrandisco i caratteri. Cmq sicuramente avete ragione, ci mancherebbe altro, io di javascript non ci capisco un H

    Avevo scritto come ero riuscito a risolvere solo perchè, non avendo letto il suggerimento, e non sapendo molto di javascript, mi sembrava potesse essere "utile" in mancanza di un sistema javascript perfetto (che ovviamente come sempre è stato postato e per questo diciamo grazie).

    Magari la prossima volta al posto di dare una soluzione "arrangiata" tengo la bocca chiusa e ringrazio eventualmente per le risposte che, immancabilmente, vengono date e che aiutano tutti noi in questo mestiere che a volte fa tirare la testa contro i muri degli uffici

    Grazie ancora per la soluzione al problema e, come detto precedentemente, per tutte le risposte che mi sono state date in passato.

    p.s.: Mi sembra doveroso ricordare che cmq lo script funziona solo con ie, quindi il discorso dei css non faceva una piega

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.