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.
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%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: Ссылка
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%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% Es gibt einen unangenehmen Weg, indem Sie sowohl start
als auch resize
abfangen:
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.
Tags und Links jquery-ui resize jquery-ui-resizable