Div größe verändern

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

  • Div größe verändern

    Hallo an alle
    ersteinmal einen wunderschönen Guten tag. Ich bin neu hier. Und ausserdem wünsche ich alle ein frohes neues Jahr.

    Ich hoffe das ihr mir bei meinem Problem helfen könnt.

    Ich wende mich an euch miteinem Problem aus dem ich keinen Ausweg mehr sehe. Meine js-kenntnisse sind dafür noch nicht ausreichend.

    Folgendes:
    Ich habe einen Div-Container. Dieses Div möchte ich mittels onmousedown vergrößern. Durch ziehen. Ich habe en Script gefunden und dieses umgeschrieben. Aber es klappt nicht. Egal was ich mache, ich ziehe mit der Maus und wenn ich klicke dann vergrößert sich das Div. Aber nicht so wie ich es wollte und schon gar nicht durch ziehen.

    Folgender Code:
    Hier rufe ich die function auf:

    Code:
    <td onmousedown="fnc_anfassen()" class="mauszeiger" height="15" width="15"><img src="./images/resize.gif"></td>


    Das ist das js-script:

    Code:
    function init()
                    {             
                    if(IE)
                        ieBody = getBody(); 
                      hy = window.event.clientY;
                      wx = window.event.clientX;
                      parent.document.onmousemove = getMousePos;
                    }
    
    //Variablen für die Mausposition
    var moX = 0; 
    var moY = 0; 
    var hy;
    var wx;
    var mhy;
    var mwx;
    
    
    function getBody()
    {
      return (window.document.compatMode == "CSS1Compat") ?
              window.document.documentElement : window.document.body || null;
    }
    
    var ieBody = null;
    /*
    function fnc_groesse()
    {
      document.onmousemove = getMousePos;
      if(IE)
        ieBody = getBody(); 
    }
    */
    
    // Funktion zum Ermitteln der Mausposition
    function getMousePos(ereignis)
    {
      // Aktuelle Mauskoordinaten bei Mausbewegung ermitteln
      moX = (IE) ? window.event.clientX : ereignis.pageX;
      //moY = (IE) ? (window.event.clientY + ieBody.scrollTop) : ereignis.pageY;
      moY = (IE) ? window.event.clientY : ereignis.pageY;
      //mhy = window.event.clientY;
      //mwx = window.event.clientX;
      window.status = "Mauskoordinaten (x, y): (" + moX + ", " + moY +")";
      
    }
    
    function fnc_anfassen()
        {
            getMousePos()
            if (hy != moY || wx != moX)
                {
                    getMousePos() 
                    parent.document.onmousemove = fnc_anpassen;
                    parent.document.onmousedown = fnc_anpassen;
                }
            //alert ( hy + " , " + moY);
        }
    
    
    function fnc_anpassen()
    {
        var apy;
        var apx;
        var sy = 600;
        var sx = 980;
        apy = sy + (moY - hy) + "px";
        apx = sx + (moX - wx) + "px";
        //alert (apx + "," + apy);
        //alert (wx + "," + hy + " , " + moX + " , " + moY);
        parent.document.getElementById('divzwei').style.height = apy;
        parent.document.getElementById('divzwei').style.width = apx;
    }
    Könnt ihr mir bei meinem Problem helfen?
    Wie stelle ich es an das sich das Div mittels ziehen der Maus in der Größe verändert?

    Ich danke euch im vorraus

    linuxfreak

  • #2
    Willkommen im Forum!
    Poste doch mal ein Online-Beispiel. Aus dem Code kann man sich kein Bild machen, wie er sich verhält.

    Kommentar


    • #3
      auf den ersten blick sieht es nach einer falschen initialisierung aus:
      PHP-Code:
      onmousedown="fnc_anfassen()" 
      da kann das nicht anders funktionieren. du benötigst einen globalen event-handler (siehe auch function init())

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

      Kommentar


      • #4
        Ich kenne kein Online-beispiel dafür.

        Erreiche möchte ich folgendes:

        Nach dem auf eine Stelle im Div geklickt wird und die Maus festgehalten wird, soll sich das Div so vergrößern, so wie sich die Maus bewegt.

        zum jetzigen Zeitpunkt bewegt sich nichts, wenn die Maus gedrückt wird. Wenn ich aber die Maus loslasse und nochmal klicke dann vergrößert sich das Div.Aber nicht so wie ich im vorfeld mit der Maus gezogen habe

        Kommentar


        • #5
          Hallo Peter

          Ich habe eine init() function. Die wird im Body aufgerufen.

          Kommentar


          • #6
            Original geschrieben von linuxfreak
            Ich kenne kein Online-beispiel dafür.
            Ich meinte, stell doch deinen Code mal komplett zum Anklicken irgendwo online

            Kommentar


            • #7
              Das würde ich gerne, aber mein Chef reist mir den Kopf ab.

              Kommentar


              • #8
                Original geschrieben von linuxfreak
                Das würde ich gerne, aber mein Chef reist mir den Kopf ab.
                dann sag deinem chef, ohne code keine hilfe. so einfach ist das.

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

                Kommentar


                • #9
                  Da ich meinen Job behalten will, werde ich es alleine weiter versuchen.

                  Kommentar


                  • #10
                    Warum reißt dir dein Chef den Kopf ab, wenn du eine harmlose HTML-Seite irgendwo online stellst? Verstehe ich nicht.

                    Kommentar


                    • #11
                      Es ist eine sehr großes Projekt mit sensiblen Daten für ein Intranet.
                      Um mein Problem sichtbar zu machen, müßte ich sehr viel davon Online setzen. Und das geht nun mal nicht.

                      Kommentar


                      • #12
                        Wieso nicht?
                        Du musst nur Namen, Firmennamen etc. ersetzen.

                        Wenn das zuviel Arbeit ist, dann kann man dir leider wirklich kaum helfen :/

                        mfg

                        Kommentar


                        • #13
                          Ich werde meinen Vertrag nicht brechen und Dinge Online.

                          Vertraglich ist es uns untersagt code offenzulegen. Daran muß und werde ich mich halten.
                          Mittlerweile habe ich aber eine lösung gefunden. Zwar keine schöne aber eine die funktioniert.

                          Kommentar


                          • #14
                            Hättest auch schon 4 Posts eher erwähnen können, dass es vertraglich untersagt ist, denn das ist was anderes als "sensible Daten"

                            Falls es möglich ist, kannst du ja noch die Lösung online stellen, falls es an deinem Code oben liegt.

                            mfg

                            Kommentar


                            • #15
                              So sieht nun die Lösung aus:

                              function fnc_anfassen()
                              {
                              getMousePos()
                              while (fnc_pruefen())
                              {
                              getMousePos()
                              parent.document.onmousedown = fnc_anpassen;
                              parent.document.onmousemove = fnc_anpassen;
                              if (fnc_abbruch())
                              {
                              break;
                              }
                              }
                              }

                              var pruefen;
                              function fnc_pruefen()
                              {
                              if (hy != moY || wx != moX)
                              {
                              pruefen = true;
                              }
                              return pruefen;
                              }

                              var abbruch;
                              function fnc_abbruch()
                              {
                              if (parent.document.onmouseup = true)
                              {
                              abbruch = true;
                              }
                              return abbruch;
                              }

                              function fnc_anpassen()
                              {
                              var apy;
                              var apx;
                              var sy = 600;
                              var sx = 980;
                              apy = sy + (moY - hy) + "px";
                              apx = sx + (moX - wx) + "px";
                              //alert (apy + "," + apx);
                              parent.document.getElementById('divzwei').style.height = apy;
                              parent.document.getElementById('divzwei').style.width = apx;
                              }

                              Kommentar

                              Lädt...
                              X