![]() |
![]() ![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 196 Pomógł: 0 Dołączył: 9.03.2017 Ostrzeżenie: (0%) ![]() ![]() |
Zmodyfikowałem przykład z biblioteki cropper.js (https://fengyuanchen.github.io/cropperjs/).
Wersja oryginalna przykładu:https://fengyuanchen.github.io/cropperjs/examples/fixed-crop-box.html Wersja moja: https://codepen.io/reti/pen/ExmyyaX Chciałbym, aby te zdjęcia, po załadowaniu wypełniły swoje divy, ale tak żeby były wycentrowane wertykalnie i horyzontalnie, przy czym: - jeżeli obraz ma orientację horyzontalną, to jego wysokość nie może być większa od diva - jeżeli obraz ma orientację wertykalną, to jego szerokość nie może być większa od diva. Dokładnie tak jak tutaj: https://ibb.co/Twqxy2h Jak to zrobić? Próbuję na różne sposoby i już skończyły mi się pomysły. Problem dokładnie taki sam jak w tym poście: Temat: JavaScriptCSSwypelnianie diva wycentrowanym obrazkiem tylko biblioteka inna. |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
Próbowałeś ustawić max-width oraz max-height:100% dla .cropper-container img ?
Trzeba nadpisać wartości, które są w cropper.css dla tego selektora. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 531 Pomógł: 55 Dołączył: 3.01.2016 Skąd: Łowicz Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 196 Pomógł: 0 Dołączył: 9.03.2017 Ostrzeżenie: (0%) ![]() ![]() |
@trueblue Dzięki, ale niestety nie działa: https://drive.google.com/file/d/1kQ8tQQZOKr...iew?usp=sharing
Chyba przez CSS się tego nie da zrobić. Myślę, żeby pokombinować jakoś z metodami: - zoom(), tzn. powiększać obrazek w zależności od tego ile brakuje do 300px - zoomTo(), tzn. pomniejszać obrazek w zależności od procentowej różnicy pomiędzy oryginałem a obrazkiem pomniejszonym. |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
width oraz height bym na chwilę wyłączył z CSS.
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 196 Pomógł: 0 Dołączył: 9.03.2017 Ostrzeżenie: (0%) ![]() ![]() |
@LowiczakPL Dzieki, niestety także nie działa: https://drive.google.com/file/d/1Etu-yks56U...iew?usp=sharing
Zastosuję zoomTo(). W wypadku obrazka poziomego docelowa wysokość to 300px. Te 300px dzielę przez oryginalną wysokość i otrzymuję proporcję, którą wpisuję do zoomTo. W wypadku obrazka pionowego docelowa szerokość to 300px. Te 300px dzielę przez oryginalną szerokość i otrzymuję proporcję, którą wpisuję do zoomTo. Teraz tylko trzeba napisać odpowiednią funkcję. Ma to sens? @trueblue "width oraz height bym na chwilę wyłączył z CSS." efekt jest taki: https://drive.google.com/file/d/1BOMCyei5dY...iew?usp=sharing Ale problem chyba udało mi się rozwiązać: Kod function fillCropContainer() { var instanceArray = [cropper1, cropper2] var ratio instanceArray.forEach((el) => { var imgNatHeight = el.imageData.naturalHeight var imgNatWidth = el.imageData.naturalWidth if (imgNatHeight < imgNatWidth) { ratio = 300 / imgNatHeight el.zoomTo(ratio) } else { ratio = 300 / imgNatWidth el.zoomTo(ratio) } }) } Muszę to jeszcze potestować. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 18.09.2025 - 09:33 |