Problem jest następujący na stronie generują mi się na podstawie danych z bazy adresy do zdjęć oraz ich miniaturek.
Na stronie wyświetlam miniaturki natomiast już wykorzystując jquery przechwytuję ukryte inputy, które zawierają adres dużych zdjęć (tylko na takie rozwiązanie wpadłem)
Problem w tym, że chciałem zmniejszać "duże zdjęcia" do jakiegoś określonego rozmiaru. Jednak w momencie kiedy próbuję czytać wielkość zdjęć otrzymuję 0 i 0 (width i height). Dodałem więc .load :
$(objImage).load( function() { //kod czytający rozmiar });
Problem jest jednak taki, że teraz za pierwszym razem kiedy najadę na zdjęcie rozmiar jest czytany poprawnie i zdjęcie jest ładowane, w momencie kiedy jednak drugi raz najadę na ten sam odnośnik zdjęcie już się nie ładuje... czy jest to związane z tym, że metoda .load działa tylko w momencie kiedy już zdjęcie jest załadowane?
poniżej kod w jquery:
$('.tonus').tooltip({ delay: 0, showURL: false, bodyHandler: function() { var new_height = 0; //nowa wysokosc zdjecia var new_width = 0; //nowa szerokosc zdjecia var height = 0; //wysokosc zdjecia (zaladowanego) var width = 0; //szerokosc zdjecia (zaladowanego) var mnoznik = 0.0; //mnoznik do zmiany rozmiaru zdjecia var pic_size = 300; //maksymlna szerokosc/wysokosc //tworzenie obiektu img do wyswietlenia var new_img = $("<img>"); new_img.attr("src",img_link); //tworzymy obiekt zdjecia var objImage = new Image(); objImage.src=img_link; $(objImage).load( function() { //ponizej malo istotny kod obliczajacy zmiane rozmiaru zdjecia height = objImage.height; width = objImage.width; if (height > pic_size || width > pic_size) { if (height > width) { if (height > pic_size) { mnoznik = pic_size / height; new_height = height * mnoznik; new_width = width * mnoznik; } } else if (width > height) { if (width > pic_size) { mnoznik = pic_size / width; new_height = height * mnoznik; new_width = width * mnoznik; } } else { mnoznik = pic_size / width; new_height = height * mnoznik; new_width = width * mnoznik; } } else { new_height = height; new_width = width; } //podstawiam obliczona szerokosc i wysokosc new_img.attr("width",new_width); new_img.attr("height",new_height); }); return new_img; //zwracam obiekt img zawierajacy zdjecie } });
Będę wdzięczny za pomoc
