Position von Dojo FloatingPane einschränken

8

Ich habe ein dojox.layout.FloatingPane (als ein benutzerdefiniertes Dijit), das irgendwo innerhalb seines einschließenden div positioniert werden kann. Mein Problem ist, dass der Benutzer das FloatingPane möglicherweise vollständig aus seinem Container ziehen und nicht abrufen kann. Gibt es eine einfache Möglichkeit, die FloatingPane jederzeit vollständig sichtbar zu machen?

Hier ist mein Code:

%Vor%     
AppsWithMaps 25.02.2012, 16:40
quelle

1 Antwort

11

Sehen Sie sich zunächst das Arbeitsbeispiel unter jsFiddle an: Ссылка

Und jetzt eine Erklärung;) Die DnD-Funktionalität von FloatingPane wird über die dojo.dnd.Moveable -Klasse erreicht, die in der Methode postCreate des Bereichs instanzialisiert wurde. Um die Bewegung von FloatingPane einzuschränken, sollten Sie stattdessen eines dieser beweglichen Elemente verwenden:

  • dojo.dnd.parentConstainedMoveable - zum Beschränken auf einen DOM-Knoten
  • dojo.dnd.boxConstrainedMoveable - zum Beschränken auf Koordinaten: {l: 10, t: 10, w: 100, h: 100}
  • dojo.dnd.constrainedMoveable - um durch Koordinaten zu bestimmen, die in einer bereitgestellten Funktion berechnet werden

Weitere Einzelheiten finden Sie in der oben genannten jsFiddle .

Gemäß der Dokumentation sollten Sie destroy() auf Moveable instance aufrufen, um sie zu entfernen, aber da FloatingPane original Moveable keiner Objekteigenschaft zugewiesen ist, zerstöre ich sie nicht, ich instanziiere nur eine dieser drei moveables für denselben DOM-Knoten in einer Unterklasse:

%Vor%

Jetzt können Sie ConstainedFloatingPane anstelle von dojox.layout.FloatingPane verwenden:

%Vor%     
phusick 27.02.2012, 10:01
quelle

Tags und Links