Personen auf Bild markieren - Abstand Problem

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Personen auf Bild markieren - Abstand Problem

    Hallo,

    habe folgendes Problem. Habe ein Script auf dem ich Personen markieren kann auf Bildern ...

    Wenn ich auf das Bild klicke kommt ein Fenster ... Der Abstand ist aber zuweit weg von der Position auf die geklickt wurde beim Bild...

    Hat wer ne Lösung für mich an was das liegt?

    Der Code:
    Code:
    <style type="text/css">
    <!--
    body {
    margin-left: 0px;
    margin-top: 0px;
    margin-right: 0px;
    margin-bottom: 0px;
    }
    
    #gogo {
    position:relative;
    left: 50px;
    top: 50px;
    cursor:normal;
    }
    
    #gogo div.nms_bild {
    position:absolute;
    z-index:1;
    cursor:normal;
    background-image:url("http://upload.wikimedia.org/wikipedia/commons/thumb/3/39/
    Debis-Haus.Berlin.view_from_Kollhoff-Tower.jpg/330px-Debis-Haus.Berlin.view_from_Kollhoff-Tower.jpg");
    background-color:#ffffff;
    width:330px;height:281px;
    }
    
    #gogo div.nms_click {
    width:330px;height:281px;
    cursor:crosshair;
    hand:crosshair;
    z-index:5;
    position:absolute;
    }
    
    #gogo nms_user {
    position:absolute;
    z-index:3;
    }
    
    #gogo div.nms_auswahl {
    position:absolute;
    z-index:6;
    display:none;
    visibility:hidden;
    width:auto;
    height:auto;
    background-color:#f8f8f8;
    border:1px solid black;
    font-family:Arial;
    font-size:10px;
    }
    
    #gogo antwort {
    #z-index:7;
    position:absolute;
    #visibility:hidden;
    overflow: auto;
    }
    -->
    </style>
    
    <link rel="stylesheet" type="text/css" href="http://images.mainpix.de/styles/layout.css">
    
    <script language="JavaScript" type="text/javascript">
    var setX="";
    var setY="";
    function visible(Ereignis){
    if(!Ereignis){
    Ereignis = window.event;
    }
    document.getElementById("nms_auswahl").style.marginLeft = Ereignis.clientX-7;
    setX=Ereignis.clientX-7;
    document.getElementById("nms_auswahl").style.marginTop = Ereignis.clientY-7;
    setY=Ereignis.clientY-7;
    document.getElementById("nms_auswahl").style.display = "block";
    document.getElementById("nms_auswahl").style.visibility="visible";
    	
    document.getElementById("antwort").style.top = setY;
    document.getElementById("antwort").style.left = setX;
    //document.getElementById("antwort").innerHTML = setX +'-'+setY;
    }
    function over(newID){
    document.getElementById("nms_auswahl_"+newID).style.backgroundColor ="#efefef";
    document.getElementById("nms_auswahl_"+newID).style.cursor="pointer";
    document.getElementById("nms_auswahl_"+newID).style.hand="pointer"
    }
    function out(newID){
    document.getElementById("nms_auswahl_"+newID).style.backgroundColor ="#ffffff";
    }
    function name_suchen(){
    if(navigator.appName.search("Microsoft") > -1){
    http_request = new ActiveXObject("MSXML2.XMLHTTP");
    }
    else {
    http_request = new XMLHttpRequest();
    }
    }
    function namenInhalt(){
    if (http_request.readyState == 4){
    document.getElementById("antwort").innerHTML = http_request.responseText
    }else{
    document.getElementById("antwort").innerHTML = '<img src="" border="0">';
    }
    }
    function v_close(){
    document.getElementById("nms_auswahl").style.display = "none";
    document.getElementById("nms_auswahl").style.visibility="hidden";
    }
    function v_insert(userID,userNAME){
    if(navigator.appName.search("Microsoft") > -1){
    http_request = new ActiveXObject("MSXML2.XMLHTTP");
    }
    else {
    http_request = new XMLHttpRequest();
    }
    document.getElementById("nms_auswahl").style.display = "none";
    document.getElementById("nms_auswahl").style.visibility="hidden";
    //alert(setX+" - "+setY);
    }
    function insertInhalt(){
    if (http_request.readyState == 4){
    bild_neuladen();
    }else{
    }
    }
    function bild_neuladen(){
    if(navigator.appName.search("Microsoft") > -1){
    http_request = new ActiveXObject("MSXML2.XMLHTTP");
    }
    else {
    http_request = new XMLHttpRequest();
    }
    }
    function bildInhalt(){
    if (http_request.readyState == 4){
    document.getElementById("nms_user").innerHTML = http_request.responseText
    }else{
    }
    }
    </script>
    
    
    
    <body onload="bild_neuladen();">
    
    <span id="nms_user" class="nms_user"></span>
    <div id="gogo">
    <div id="nms_bild" class="nms_bild"></div>
    <div id="nms_click" class="nms_click" onclick="JavaScript:visible(event);"></div>
    <div id="nms_auswahl" class="nms_auswahl">
    <form name="fl">
    <input type="text" name="name" size="20" value="suche einen Namen" onclick="this.value='';" onkeyup="name_suchen();"><br>
    <span id="antwort" class="antwort"></span>
    </form>
    </div>
    </div>
    </body>
    </html>
    Zuletzt geändert von Hendrik33; 23.08.2010, 19:58.

  • #2
    Erstmal schön umbrechen, mein Bester!
    [FONT="Helvetica"]twitter.com/unset[/FONT]

    Shitstorm Podcast – Wöchentliches Auskotzen

    Kommentar


    • #3
      Hää?
      Wo was wie?

      Kommentar


      • #4
        Auf "ändern" klicken und dann die extrem langen Zeilen umbrechen.

        Peter
        Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
        Meine Seite

        Kommentar


        • #5
          So gemacht
          Jetzt hoffe ich auf euch

          Kommentar


          • #6
            Weiß keiner was?

            Kommentar


            • #7
              Hallo,

              hast du zufällig ein Onlinebeispiel zur Hand? Mit dem Code alleine kann ich das grad nicht nachvollziehen.

              Gruß,

              Amica
              [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
              Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
              Super, danke!
              [/COLOR]

              Kommentar


              • #8
                Kopiere dir einfach den Code
                Das langt schon um das Problem nachzuvollziehen

                Kommentar


                • #9
                  Zitat von Hendrik33 Beitrag anzeigen
                  Kopiere dir einfach den Code
                  Hab ich schon lange. Das ist erstmal schlechtes HTML, der JS-Code ergibt keinen Sinn und von Bildern und neuen Fenstern ist auch nichts zu sehen.

                  Zitat von Hendrik33 Beitrag anzeigen
                  Das langt schon um das Problem nachzuvollziehen
                  Das langt gerade dafür, zu der Frage zu kommen, wen du hier veralbern willst.

                  Liefere eine nachvollziehbare und vernünftige Problembeschreibung oder das hier landet im Müll.
                  [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                  Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                  Super, danke!
                  [/COLOR]

                  Kommentar


                  • #10
                    Es geht deshalb nicht da ich umbrechen musste im Code laut euren Moderatoren hier ...
                    Deshalb wird das Bild auch nicht angezeigt ...

                    Hier die URL: http://www.ff-mittelsinn.de/test.html

                    wenn der crossfader kommt dann klicke mal und dann siehste das ne box kommt ...
                    die ist zu weit von der stelle entfernt wo man geklickt hat. wie kriege ich die näher dran? dass meine ich

                    Kommentar


                    • #11
                      hm .. auf der Testseite sind es ca 50px rechts, 50 px runter .. was mich irgendwie an eine deiner Styleanweisungen erinnert (left: 50px , top: 50px )...

                      was passiert denn, wenn du die Werte im "Abschnitt " #gogo mal kleiner machst ?
                      [font=Verdana]
                      Wer LESEN kann, ist klar im Vorteil!
                      [/font]

                      Kommentar


                      • #12
                        dann würde es gehen wenn ich auf 1px mache bei beiden werten...
                        das problem ist aber, dass der div erst links und von oben bei 50px platziert werden soll (dort wo das bild geladen werden soll)

                        Kommentar


                        • #13
                          dann mach margin-left und margin-top bei deiner Berechnung jeweils kleiner als nur Ereignis.clientX ( bzw clientY) und passe die Werte für document.getElementById("antwort").style.top / style.left entsprechend mit an

                          mit

                          Code:
                          if(!Ereignis){
                          Ereignis = window.event;
                          }
                          document.getElementById("nms_auswahl").style.marginLeft = Ereignis.clientX-48;
                          setX=Ereignis.clientX-7;
                          document.getElementById("nms_auswahl").style.marginTop = Ereignis.clientY-48;
                          setY=Ereignis.clientY-7;
                          document.getElementById("nms_auswahl").style.display = "block";
                          document.getElementById("nms_auswahl").style.visibility="visible";
                              
                          document.getElementById("antwort").style.top = setY-48;
                          document.getElementById("antwort").style.left = setX-48;
                          liegt die Antwort-Box schön dicht am Crosshair (zum bleistift)

                          nur mal so am Rande .. nimm Firefox mit Firebug für die Tests von "sowas" .. da kann man recht schön die Abmessungen solcher berechneter Divs anzeigen lassen
                          Zuletzt geändert von eagle275; 25.08.2010, 16:11.
                          [font=Verdana]
                          Wer LESEN kann, ist klar im Vorteil!
                          [/font]

                          Kommentar

                          Lädt...
                          X