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

    Posizionamento tramite javascript con le proprietà di style

    Ciao, sto cercando di realizzare una cosa stile le tag di facebook, però ho un problema con il posizionamento tramite javascript, questo è il codice 'prototipo', cliccando su un punto della foto questo punto viene salvato nel database, che poi viene a riletto e viene creata una mappa dei punti in cui mostrare il quadratino con relativo messaggio.
    Il problema è che mi piazza i quadratini totalmente sballati da dove dovrebbero essere, o meglio la x è corretta, la y è troppo in basso...
    Però ho provato a fare alert(pos_x+' '+pos_y), e ad esempio ho '300 60' che andrebbe benissimo, è la posizione dove dovrebbe essere, ma poi mi piazza il quadratino un bel po' più in basso...

    Potreste darmi una mano?

    Grazie e scusatemi se sono stato poco chiaro...

    Codice PHP:
    <html>
    <head>
    <?php $xajax->printJavascript("./moduli/xajax"); ?>
    <script language="JavaScript">
        /* Salva il punto in cui si effettua il click */
        function add_tag(event){
            pos_x = event.offsetX?(event.offsetX):event.pageX-document.getElementById("div_img").offsetLeft;
            pos_y = event.offsetY?(event.offsetY):event.pageY-document.getElementById("div_img").offsetTop;
            /* Funzione xajax che salva il punto */
            xajax_saveclick(pos_x,pos_y,1,53);
        
        }
        /* Mostra il tag nella posizione x,y */
        function show_tag(x,y,text){
            /* Ricalcolo la posizione x */
            pos_x = parseInt(x)+document.getElementById("div_img").offsetLeft;
            /* Ricalcolo la posizione y */
            pos_y = parseInt(y)+document.getElementById("div_img").offsetTop;
            
            /* Mostro il quadratino */
            document.getElementById("quadrato").style.left = (pos_x-27);
            document.getElementById("quadrato").style.top = (pos_y+27);
            document.getElementById("quadrato").style.visibility = "visible" ;
            /* Mostro il testo */
            Tip(text,FIX, ['div_img', pos_x+27, pos_y+27]);
        }
        /* Nasconde il quadratino e il testo */
        function hide_tag(){
            document.getElementById("quadrato").style.visibility = "hidden" ;
            UnTip();
        }
    </script>
    </head>
    <body>
        <script language='JavaScript' type='text/javascript' src='wz_tooltip.js'></script>
        
        <div id="div_img" style="width:500px; height:228px;>
        [img]img.jpg[/img]
        <map name="Map" id="Map">
            <?php
                
    /* Leggo dal db le tag per questa foto */
                
    $result dbquery("SELECT t.tag_x, t.tag_y, t.user_id, u.username FROM foto_tags AS t ,phpbb_users AS u WHERE u.user_id = t.user_id AND t.foto_id = '1'");
                
    /* Se ce ne sono */
                
    if(dbrows($result)){
                    
    /* Per ogni tag creo un quadrato */
                    
    while($row dbarray($result)){
                        echo 
    "<area shape='rect' coords='".($row['tag_x']-27).",".($row['tag_y']+27).",".($row['tag_x']+27).",".($row['tag_y']-27)."' href='#' onmouseover=\"show_tag('".$row['tag_x']."','".$row['tag_y']."','".stripslashes($row['username'])."')\" onmouseout='hide_tag()' />";
                    }
                }
            
    ?>
        </map>
        [img]rettangolo.png[/img]
        </div>
    </body>
    </html>

  2. #2
    Ciao, credo di aver capito che il problema dipende dal posizionamento relativo dell'oggetto...
    Ho circa risolto con un escamotage, ma non mi piace molto, in pratica ho messo un div invisibile posizionato assolutamente in alto a sinistra, e poi uso quello come riferimento, però non mi piace molto...
    Se avete qualche idea per come ricalcolare il posizionamento in modo relativo è ben accetta.

    Thanks

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.