Colorbox scheint für reaktives Design "out of the box" gut geeignet zu sein. Ich überschreibe die Standardbemaßungseinstellungen mit Prozentsätzen und setze dann Maximalwerte, damit auf großen Bildschirmen nichts aus dem Ruder läuft:
%Vor%Das funktioniert. Ich sortiere auch das cboxTitle Element, um genau die Breite des img darüber zu sein, so dass meine manchmal langen Untertitel immer gut aufgereiht sind.
%Vor%Das scheint auch zu funktionieren. Das lässt den gruseligen Teil offen: Umgang mit Fenster-Größenänderungs-Ereignissen. Ich versuche das folgende
%Vor%(Ich verwende tatsächlich ein benutzerdefiniertes debokedresize -Ereignis anstelle der standardmäßigen jQuery-Größenänderung, um den Stream zu drosseln Ich ändere die Größe von Ereignissen in Webkit, lasse diesen Teil jedoch aus, weil er nicht relevant ist. Außerdem wiederhole ich die Werte für die Breite und Höhe in den Größenänderungsoptionen, da sonst keine Größenanpassung erfolgt. :()
Dieser letzte Teil funktioniert überhaupt nicht. Ich werde versuchen, die Probleme zu lösen:
1) Wenn der Benutzer ein Farbfeld mit einer Standard-Destop-Größe lädt und das Ansichtsfenster dann schmaler skaliert, wird die Höhe des Elements cboxPhoto
nicht korrekt skaliert. Die Breite schrumpft richtig, aber die Höhe bleibt gleich, so dass ein "Squeeze" entsteht. Also habe ich versucht, height:auto
zur CSS für cboxPhoto
hinzuzufügen. Das stellt das Seitenverhältnis wieder her, aber jetzt ist das Element cboxPhoto
viel zu groß und wird abgeschnitten. Ich bekomme Scrollbalken innerhalb des Modals, wenn ich es vorher nicht getan habe. Das Foto hat nicht die Größe, die es hätte, wenn ich die Farbbox schließen und mit der neuen Darstellungsfeldbreite des Browsers erneut öffnen würde.
2) Die CSS für cboxTitle
wird nicht neu berechnet. Die Funktion zur Größenänderung der Farbbox scheint das cbox_complete
-Ereignis nicht auszulösen. Sollte es nicht?
Ich würde gerne diese Probleme beheben, aber ich denke auch, dass der einfachste Weg, diesen Anwendungsfall angesichts des aktuellen Status des Plugins anzugehen, ist, stattdessen die gesamte Farbbox zu schließen und neu zu laden, wenn die Größe des Fensters geändert wird Zurück zum exakt gleichen Inhalt in der Galerie, den der Benutzer vor dem Größenänderungsvorgang angesehen hat. Aber ich weiß nicht genau, wie ich das programmieren soll. Vielen Dank im Voraus für jede Hilfe!
P.S. Jeder, bitte ersparen Sie mir das Argument, dass nur Designer die Größe von Fenstern ändern. Entschuldigung, das kaufe ich einfach nicht. Leute vergrößern sich, wenn ein atemberaubendes Foto auf dem Bildschirm ist, und insbesondere Tablets werden ständig gedreht ...
Ich würde in solchen Fällen die Verwendung von $.resize
verhindern. Ich denke, dass CSS Media Queries
reaktionsfähiges Design aktiviert. Warum also nicht Medienabfragen verwenden?
Ich habe colorbox
in der Praxis noch nie probiert, aber ich denke, dass $.colorbox.settings.width = "92%";
ein Inline CSS
für das Element einfügt.
Entfernen Sie diese Einstellungen. Verhindern Sie Inline-CSS in Ihrem colorbox-Element. Verwenden Sie dann einfach CSS, um width
und height
für die anfängliche Skalierung für größere Desktops anzugeben.
Und verwenden Sie Media Queries
, um die Modalgrößen bei der Fenstergrößenanpassung zu vergrößern.
Mehrfachabfragen sind auch vollkommen legal. So können Sie die Modalgrößen auf noch kleinere Größen einstellen.
%Vor% Sie könnten px
anstelle von %
verwenden, aber in diesem Fall würde die modale Breite / Höhe von colorbox etwas springen, wenn Sie von einer Größe zur nächsten wechseln. Sie können jedoch die transition
-Eigenschaft von CSS verwenden, um den Größenanpassungsprozess in diesem Fall glatter zu gestalten.
Könnten Sie einfach die CSS-Höhe und -Breite des colorbox-Fensters auf die Größenänderung setzen?
%Vor%