Colorbox wydaje się być dobrze dopasowany "po wyjęciu z pudełka" w celu uzyskania elastycznego projektu. Jestem przesłanianie domyślne ustawienia wymiarów z procentów, a następnie ustawienie maksymalnych wartości tak sprawy nie wymkną się spod kontroli na ogromnych ekranach:Zmień rozmiar Colorbox na zmianę rozmiaru okna
$.colorbox.settings.width = "92%";
$.colorbox.settings.height = "90%";
$.colorbox.settings.maxHeight = 850;
$.colorbox.settings.maxWidth = 1200;
to działa. Zmieniam także element cboxTitle, aby był dokładnie taki, jak img powyżej, tak, że moje czasami długie napisy są zawsze ładnie ułożone.
$(document).bind('cbox_complete', function(){
var photoWidth = $(".cboxPhoto").innerWidth();
var photoContainer = $("#cboxContent").outerWidth();
var leftPix = (photoContainer - photoWidth)/2;
$("#cboxTitle").css({'left' : leftPix, 'width' : photoWidth});
});
Co również wydaje się działać. Pozostaje przerażająca część: zajmowanie się zdarzeniami zmiany rozmiaru okna. Próbuję następujące
$(window).on("resize", function(){
$.fn.colorbox.resize({
height: "90%",
width: "92%"
});
});
(ja faktycznie przy użyciu niestandardowych debouncedresize imprezę zamiast standardowego jquery rozmiaru, aby zdławić strumień zmiany rozmiaru wydarzeń w Webkit, ale odchodzę, że część z ponieważ nie jest to istotne. Powtarzam te same wartości szerokości i wysokości w opcjach rozmiaru, ponieważ w przeciwnym razie nie nastąpi zmiana rozmiaru :()
Ta ostatnia część w ogóle nie działa. spróbuj rozwiązać problemy:
1) Gdy użytkownik załaduje zestaw kolorów w standardowym rozmiarze, a następnie skaluje rzutnię n strzałka, wysokość elementu cboxPhoto
nie skaluje się poprawnie. Szerokość kurczy się prawidłowo, ale wysokość pozostaje taka sama, tworząc "ściskanie". Więc próbowałem dodać height:auto
do css dla cboxPhoto
. To przywraca proporcje, ale teraz element cboxPhoto
jest o wiele za duży i jest przycięty. Dostaję paski przewijania wewnątrz modalu, kiedy jeszcze tego nie robiłem. Zdjęcie nie ma takiego rozmiaru, w jakim znajdowałoby się, gdy zamknęłoby się pudełko kolorów i ponownie je otworzyło przy nowej szerokości okna przeglądarki.
2) Wartość css dla parametru cboxTitle
nie jest ponownie obliczana. Funkcja zmiany rozmiaru w polu colorbox nie wydaje się wywoływać zdarzenia cbox_complete
. Czy nie powinien?
Chciałbym rozwiązać te problemy, ale wyczuwam też, że być może najłatwiej jest rozwiązać ten przypadek użycia, biorąc pod uwagę, że obecny stan wtyczki polega na tym, że zamiast tego wystarczy zamknąć i ponownie załadować cały zestaw kolorów po zmianie rozmiaru okna, ale wróć do dokładnie tej samej treści w galerii, którą oglądał użytkownik przed zdarzeniem zmiany rozmiaru. Ale jestem niejasny, jak to zakodować. Z góry dziękuję za pomoc!
P.S. Wszystkim, proszę oszczędzić mi argumentu, że to tylko projektanci zmieniają rozmiar okna. Przepraszam, po prostu tego nie kupuję. Ludzie skalować się, gdy wspaniałe zdjęcie jest na ekranie, a zwłaszcza tabletki obraca się cały czas ...
To jedno z najbardziej zadawanych pytań, jakie kiedykolwiek widziałem na SO; Dziękuję za to. Re # 2, moim zdaniem jest to wybór autora wtyczki. Zmienia rozmiar = wyświetlanie na czerwono; rozsądne umysły mogą się różnić. Twoje obejście wydaje się celowe. –
jakieś aktualności tutaj? Jestem bardzo zainteresowany! – headkit