jQuery UI Die Größe der Größenänderung für Größenänderungen kann im resize-Ereignis nicht geändert werden

8

Verwenden von jQuery UI Resizable Ich versuche, die Größenänderung basierend auf verschiedenen Regeln zu verhindern. Die integrierte Containment-Funktion scheint bei absolut positionierten Elementen nicht richtig zu funktionieren, und ich würde ohnehin etwas flexibleres brauchen.

Etwas wie folgt haben:

%Vor%

Wie kann ich dem "ui" -Objekt mitteilen, dass die Größenänderung verhindert wird?

Danke.

    
pbz 23.02.2011, 05:12
quelle

8 Antworten

1

Scheint mit der aktuellen Version nicht möglich zu sein.

    
pbz 26.02.2011, 03:30
quelle
18

Es ist sehr einfach, schauen Sie sich diesen Code für resizeable floating 'links' div Spalten mit Breite und Grenzen für einander an.

%Vor%     
Alexey 01.06.2012 06:39
quelle
9

Es gibt keine Standardoption, um die Größenanpassung bei dieser Version zu stoppen. Sie können die Größe der Größe deaktivieren, aber sie wird die Größenanpassung fortsetzen und die Option zum Ändern der Größe erst beim nächsten Versuch anhalten.

%Vor%

Wie auch immer, ich habe festgestellt, dass Sie die Größenanpassung mit der Eigenschaft maxWidth und maxHeight direkt aus dem Resize Event begrenzen können.

%Vor%     
Roy Shoa 03.04.2013 08:51
quelle
7

Legen Sie die Eigenschaften der Benutzeroberfläche direkt im resize-Ereignis fest. (Sie können dies auch auf dem Stop-Ereignis tun, wenn Sie bevorzugen):

%Vor%

Sie können natürlich auch mit der Positionierung arbeiten.

Siehe diese Geige: Ссылка

    
David Twist 01.06.2012 23:11
quelle
1

Die Antwort, die Sie als richtig ausgewählt haben, ist nicht ganz korrekt. Dies ist erreichbar:

Verwenden Sie einen nutzlosen Helfer, um die Größenänderung beim resize-Ereignis zu stoppen:

%Vor%

Ändern Sie im resize-Ereignis die Größe und Position in der Größe, die Sie wünschen. Sie haben immer noch ein Problem mit dem Stop-Ereignis. Kurz bevor das stop-Ereignis ausgelöst wird, passt jquery Ihr Element an - was Sie nicht wollen. Sie können den Objektzustand nur zurücksetzen, wenn das Resize-Ereignis zum letzten Mal ausgelöst wurde. So können Sie im stop-Ereignis Ihre Größe und Position in der Größe anpassen, wie sie von Ihnen beim letzten "resize" -Ereignis festgelegt wurden, das ausgelöst wurde. Dazu müssen Sie einige Variablen in einem höheren Kontext deklarieren oder die jQuery-Methode element.data () verwenden - Ihre Wahl (Sie können sogar einen unsichtbaren Klon des gesamten Objekts erstellen, wenn Ihnen dies angenehmer erscheint). Hier ist eine Übersicht über die endgültige Codestruktur:

%Vor%     
Radu Simionescu 18.09.2013 13:05
quelle
1

Ich denke, Sie könnten so etwas tun:

%Vor%     
Alaeddin Hussein 26.02.2011 04:00
quelle
0

Es ist lange her, aber es gibt eine Lösung für dieses Problem, falls jemand dies liest.

Sie müssen nur die maxWidth oder minWidth (hängt davon ab, was Sie tun wollen) in resize einstellen, um die Größenänderung zu stoppen.

Sie können Folgendes tun:

%Vor%     
codenamezero 02.12.2014 17:44
quelle
0

Es gibt einen unangenehmen Weg, indem Sie sowohl start als auch resize abfangen:

%Vor%

Leider gibt es einen 4-Pixel-Rand am Griff für die Größenänderung. Daher müssen Sie eine leichte Korrektur anwenden, um zu vermeiden, dass der Bereich in der Größe "übersprungen" wird, wenn Sie die Größenänderung abbrechen.

Diese Lösung setzt die Speicherung auf die Anfangsposition zurück, vorausgesetzt, dass immer die gleiche Regel gilt. Sie können dies natürlich anpassen, indem Sie die ursprüngliche Position und Größe nicht speichern, sondern sie während der Größenänderung neu berechnen. In diesem Fall müssen Sie start überhaupt nicht abfangen.

    
LSerni 07.03.2015 10:28
quelle