Fensterbegrenzung mit js

  • Hallo an alle
    Ich hoffe das ihr mir helfen könnt.
    Folgendes:

    Ich habe einen Div-Container den ich mittels Drag& Drop verschieben kann. Was auch wunderbar funktioniert. Nun stehe ich aber vor dem Problem, das sich dieser Div-Container aus dem Browser-fenster hinausschieben läßt.
    Wie kann ich das verhindern?

    Mein bisheriger Ansatz sieht wie folgt aus:

    Code
    if (objDrag.style.left < "2px" || objDrag.style.top < "2px")
                                            {    
                                             stopDrag()    
                                            }

    Nur das klappt nicht und die Bewegung wird sehr langsam und verzögert.

    Danke im vorraus für eure hilfe

    Dicker

  • mmh also für links und oben klappt des ja von der abfrage her...
    nur beim ausführenden code würde ich die position des divs auf 2px setzen oben und unten.. also immer den wert, derals begrenzung angegeben wurde..., das ganze aufrufen vor stopDrag();
    für die rechte und untere begrenzung is des viewport-höhe und vieport-breite minus 2px und das minus die breite bzw höhe des divs
    is halt n bissi rechnerei mit formeln :)

  • Die Abfrage klappt nicht. Der Container läßt sich über die grenze von 2px hinausschieben. Auch ist es so, das die Containerbewegung dadurch extrem verlangsamt wird.
    Left und Top reicht aus. Rechts und unten kann ich vernachlässigen

    Einmal editiert, zuletzt von Dicker1 (27. Januar 2009 um 14:52)

  • So sieht die Drag-funktion aus:

    Die sperre steht in der Funktion.

    Auch wenn ich die Abfrage aufteile klappt es nicht.
    Das verschieben stopt nach wenigen px.

    Einmal editiert, zuletzt von synaptic (27. Januar 2009 um 15:37) aus folgendem Grund: beiträge zusammengeführt

  • aber das stopDrag() wird aufgerufen? also ausgeführt...?
    mach mal nen alert da rein, der dann die aktuelle position zurückliefert..
    und arbeite nicht mit strings.. parse den integer-wert aus der position und arbeite mit ner ganzen zahl...
    die funktion heisst parseInt()

  • Ich habe es so gemacht :

    Die Werte habe ich mir anzeigen lassen. Die stimmen auch. Ebenso wird auch der "stopDrag" aufgerufen. Aber es klappt trotzdem nicht. Der Container wandert immer heraus. Die Sperre ist nicht wirksam.

  • Ich bstel immer noch mit dem Resize von div-Container herum:
    Folgenden Code habe ich ja:

    Der html-code sieht so aus:

    Aber wenn ich das div anpacke, dann kann ich nicht mit gedrückter Maustaste das div in seiner größe verändern.
    Daran bin ich schon seit bald 4 Wochen dran.
    Es ist zum verzweifeln

  • Ich habe versucht und versucht und herumgebastelt.
    Aber es klappt nicht. Ich bin mit meinem Latein am ende.

    Ich schaffe es nicht, das sich das Div mit gedrückter Maustaste vergrößert oder verkleinert.

  • poste mal bitte ein extrakt von den zuständigen drag-funktionen, der resize-funktion, dem dazugehörigen html-code und nicht zu vergessen den style.
    wenn ich mich recht entsinne kannst das ja net online stellen, daher das extrakt des notwendigen.
    kann mich aber heute erst spät abends dransetzen (wenn überhaupt) bei mir brennt akut die luft, wegen meines cmstest und ich hab privat grad nen arsch voll zu tun

  • Hallo synaptic
    Danke für Deine hilfe.
    Nachfolgend findest Du das gewünschte.

    Style:

    html-Teil:

    Wie du siehst sind es 2 div-Container. Das resize-event wird aber nur auf den div-Container "divzwei" angewandt.


    Javascript-code:

    So das müßte alles sein. Wenn Du noch etwas benötigst, dann gib bescheid.

    Nochmals vielen Dank im voraus
    Dicker