Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Syntax...

Einklappen

Neue Werbung 2019

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

  • [Erledigt] Syntax...

    Hallo,

    ich moechte folgenden code umschreiben aber ich check das irgendwie nicht:

    Das ist die JS-Funktion:

    Code:
    function GetCoordinates(e)
    {
    
      var PosX = 0;
      var PosY = 0;
      var ImgPos;
      ImgPos = FindPosition(document.getElementById("img"));
      if (!e) var e = window.event;
      if (e.pageX || e.pageY)
      {
        PosX = e.pageX;
        PosY = e.pageY;
      }
      else if (e.clientX || e.clientY)
        {
          PosX = e.clientX + document.body.scrollLeft
            + document.documentElement.scrollLeft;
          PosY = e.clientY + document.body.scrollTop
            + document.documentElement.scrollTop;
        }
      PosX = PosX - ImgPos[0];
      PosY = PosY - ImgPos[1];
      
      var width = document.getElementById("img").clientWidth;
      var height = document.getElementById("img").clientHeight;
     
      if(PosX<0){PosX=0;}
      if(PosY<0){PosY=0;}
      if(PosX>width-30){PosX=width-30;}
      if(PosY>height-30){PosY=height-30;}
      document.getElementById("simg").style.top =PosY+"px";
      document.getElementById("simg").style.left =PosX+"px";
      
    }
    die wird jetzt so im HTML bereich aufgerufen:

    Code:
    <script type="text/javascript">
    
    document.getElementById("img").onmousemove = GetCoordinates; 
    
    </script>
    Und ich moechte diese Funktion so aufrufen lassen

    Code:
    <img src="img.png" id="img" onmousemove="GetCoordinates();" border="0">
    Aber dabei krieg ich die Fehlermeldung: TypeError: e is undefined

    e glaube ich ist das onmousemove ereigniss aber wie soll ich das definieren im
    onmousemove="GetCoordinates();" damit das funktioniert ?

    Danke !!!

  • #2
    verusche mal ein statt
    Code:
    var ImgPos;
      ImgPos = FindPosition(document.getElementById("img"));
    das hier
    Code:
    var ImgPos;
    var e = 0;
      ImgPos = FindPosition(document.getElementById("img"));

    Kommentar


    • #3
      Hallo,

      leider das selbe TypeError: e is undefined

      muss ich vieleicht einen Parameter fuer e mitgeben ?

      Danke !!!

      Kommentar


      • #4
        sorry hab das überlesen...

        Code:
        function GetCoordinates(e)
        die function erwartet einen Parameter beim Aufruf... ...warum weiß ich nicht

        wenn sich das script über window.event die Koordinaten holen kann nimm einfach die Variable raus
        Code:
        <script type="text/javascript">
        
        document.getElementById("img").onmousemove = GetCoordinates; 
        
        </script>
        ungültiger functions aufruf
        musst du weg lassen da du on...move event im img tag hast

        Kommentar


        • #5
          komisch geht auch nicht...

          ich habe jetzt e weggelassen also

          function GetCoordinates()
          {
          ...
          }

          und so versucht:

          if (!e) var e = window.event;

          und so:

          var e = window.event;

          aber immer wieder die selbe Fehlermeldung:
          TypeError: e is undefined

          Kommentar


          • #6
            Gib mal bittte da gesamte Script auch nitvden anderen funktionen

            Kommentar


            • #7
              Code:
              <html>
              <head>
              <script language="JavaScript">
              
              function FindPosition(oElement)
              {
                if(typeof( oElement.offsetParent ) != "undefined")
                {
                  for(var posX = 0, posY = 0; oElement; oElement = oElement.offsetParent)
                  {
                    posX += oElement.offsetLeft;
                    posY += oElement.offsetTop;
                  }
                    return [ posX, posY ];
                  }
                  else
                  {
                    return [ oElement.x, oElement.y ];
                  }
              }
              
              function GetCoordinates(e)
              {
              
                var PosX = 0;
                var PosY = 0;
                var ImgPos;
                ImgPos = FindPosition(document.getElementById("img"));
                if (!e) var e = window.event;
                if (e.pageX || e.pageY)
                {
                  PosX = e.pageX;
                  PosY = e.pageY;
                }
                else if (e.clientX || e.clientY)
                  {
                    PosX = e.clientX + document.body.scrollLeft
                      + document.documentElement.scrollLeft;
                    PosY = e.clientY + document.body.scrollTop
                      + document.documentElement.scrollTop;
                  }
                PosX = PosX - ImgPos[0];
                PosY = PosY - ImgPos[1];
                alert(PosX+ " " + PosY);   
               
              }
              </script>
              </head>
              
              <body>
              <img src="img.png" id="img" onmousemove="javascript: GetCoordinates();">
              </body>
              </html>

              Kommentar


              • #8
                Code:
                <html>
                <head>
                <script language="JavaScript">
                function write_text (X,Y) {
                	document.getElementById('X').innerHTML = X;
                	document.getElementById('Y').innerHTML = Y;
                }
                function FindPosition(oElement)
                {
                  if(typeof( oElement.offsetParent ) != "undefined")
                  {
                    for(var posX = 0, posY = 0; oElement; oElement = oElement.offsetParent)
                    {
                      posX += oElement.offsetLeft;
                      posY += oElement.offsetTop;
                    }
                      return [ posX, posY ];
                    }
                    else
                    {
                      return [ oElement.x, oElement.y ];
                    }
                }
                
                function GetCoordinates()
                {
                
                  var PosX = 0;
                  var PosY = 0;
                  var ImgPos;
                  ImgPos = FindPosition(document.getElementById("img"));
                  if (!e) var e = window.event;
                  if (e.pageX || e.pageY)
                  {
                    PosX = e.pageX;
                    PosY = e.pageY;
                  }
                  else if (e.clientX || e.clientY)
                    {
                      PosX = e.clientX + document.body.scrollLeft
                        + document.documentElement.scrollLeft;
                      PosY = e.clientY + document.body.scrollTop
                        + document.documentElement.scrollTop;
                    }
                  PosX = PosX - ImgPos[0];
                  PosY = PosY - ImgPos[1];
                  write_text (PosX, PosY); 
                }
                </script>
                </head>
                
                <body>
                <img src="img.png" id="img" onmousemove="javascript: GetCoordinates();">
                
                <br><span id="X">0</span> - <span id="Y">0</span>
                </body>
                </html>
                funktioniert Tadellos
                ich hab die Koordinaten mal in span tags ausgeben lassen keine probleme

                Kommentar


                • #9
                  Vielen Dank !!!

                  Kommentar

                  Lädt...
                  X