nimble: Probleme beim verschieben von div

Hi

Ich hab mir einen Onlinedesktop gebastelt, auf welchem "Fenster" geöffnet und verschoben werden können. Diese Fenster sind eigentlich div's mit eingebettetem Iframe (nur für IE)

Das Verschieben hab ich mit einem einfachen Script gelöst:

  
function Merken(dth)  
{  
 Merker = 1;  
  divToHandle = document.getElementById(dth);  
}  
  
function Loslassen()  
{  
 Merker = 0;  
}  
  
function Plazieren()  
{  
 if(Merker == 1)  
 {  
  divToHandle.style.left = window.event.x - 300;  
  divToHandle.style.top = window.event.y - 10;  
 }  
}  

Leider scheint mir das Skript nicht sehr resourcenschonend, da die Funktion Plazieren bei jeder Mausbewegung aufgerufen wird. Zudem scheint der IE ziemlich mühe mit dem ständigen neuberechen der Position zu haben. Das "Fenster" bleibt immer wieder hängen und Teile der darunterliegenden Fenster drücken durch...

Kennt jemand eine bessere Methode soetwas zu realisieren?

THX

--

------------------------------
lieber ein Pinguin der läuft
als ein Fenster das hängt
------------------------------
  1. hi,

    divToHandle.style.left = window.event.x - 300;
      divToHandle.style.top = window.event.y - 10;

    Bitte gebe eine Einheit an, und verlasse dich nicht auf die Fehlertoleranz eines Browsers.

    Leider scheint mir das Skript nicht sehr resourcenschonend, da die Funktion Plazieren bei jeder Mausbewegung aufgerufen wird.

    Es müsste ja vielleicht nicht unbedingt bei _jeder_ Mausbewegung verschoben werden - sondern vielleicht nur dann, wenn die "Strecke" der Verschiebung mindestens 10 (25, 50?) Pixel in mindestens einer Richtung beträgt.

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
    1. Zur Korrektur -> Hier gehts tatsächlich um Javascript ;-)

      Bitte gebe eine Einheit an, und verlasse dich nicht auf die Fehlertoleranz eines Browsers.

      Da geb ich dir 100% recht, hab das Script abgekupfert und das übersehen... im übrigen: ValidatorRoulez ;-)

      Es müsste ja vielleicht nicht unbedingt bei _jeder_ Mausbewegung verschoben werden - sondern vielleicht nur dann, wenn die "Strecke" der Verschiebung mindestens 10 (25, 50?) Pixel in mindestens einer Richtung beträgt.

      das kann ich mir jetzt nicht wirklich vorstellen:
      onMouseMove>10px() gibts soviel ich wiess nicht...
      werde wohl irgend ne if abfrage in den Pazierer einbauen müssen

      THX

      ------------------------------
      lieber ein Pinguin der läuft
      als ein Fenster das hängt
      ------------------------------

      1. hi,

        Es müsste ja vielleicht nicht unbedingt bei _jeder_ Mausbewegung verschoben werden - sondern vielleicht nur dann, wenn die "Strecke" der Verschiebung mindestens 10 (25, 50?) Pixel in mindestens einer Richtung beträgt.

        das kann ich mir jetzt nicht wirklich vorstellen:
        onMouseMove>10px() gibts soviel ich wiess nicht...

        Du reagierst nach wie vor auf jede Bewegung - verschiebst das Fenster aber nur dann, wenn mehr als x Pixel zurückgelegt wurden.

        gruß,
        wahsaga

        --
        /voodoo.css:
        #GeorgeWBush { position:absolute; bottom:-6ft; }
  2. Hallo nimble,

    kennst Du schon Struppis Version?

    http://javascript.jstruebig.de/skripte/57/

    bei den Bildchen läuft sie recht flüssig.

    Gruß, Jürgen