Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [JavaScript] Proste sklaowanie obrazka
-lukasamd-
post
Post #1





Goście







Witam,
chciałbym sobie na forum dodać skrypt, który automatycznie pomniejszałby zbyt duże obrazki i zamieniał je na linki (tzn. dodanie stylu max-width i max-height, oraz linku).

Mam oto coś takiego co używa jquery:
Kod
$(document).ready(function()
{
  $("img").each(function(index) {
    var img = $(this);

    
    alert(img.attr("width") + 'x' + img.attr("height"));

    if ( img.attr("width") > 550)
    {
      $(img).replaceWith('aaaa');
    }

  });
  
});


Niestety, nie działa to zbyt logicznie.
Po pierwsze, w FF czy Operze zwraca dziwne wymiary - dla obrazka 1600x1000px pokazało 43x19px. Mimo to zamienia na napis.
W Chrome pokazuje 0x0 i nie zmienia...

Wydaje mi się, że w chwili wywołania alertu nie cały jest wczytany, stąd taka dziwna informacja. Potem jest już więcej informacji = zmniejsza.

No ale jak zrobić to tak, aby naprawdę działało, do tego również w Chrome?
Czy w ogóle taki sposób pobierania wymiarów ma tu sens?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
zegarek84
post
Post #2





Grupa: Zarejestrowani
Postów: 1 332
Pomógł: 294
Dołączył: 12.10.2008
Skąd: Olkusz

Ostrzeżenie: (0%)
-----


[JAVASCRIPT] pobierz, plaintext
  1. $(document).ready(function()
  2. {
  3. var iMaxW = 550,
  4. sWait = 'http://rlv.zcache.com/worth_the_wait_pc_hourglass_icon_photosculpture-p1539141672349109753s98_400.jpg';
  5. $("img").each(function(index) {
  6. var oImg = new Image,
  7. sImg = this.src,
  8. thatImg = this;
  9. oImg.onload = function(){
  10. var iW = this.width, iH = this.height, iNewH;
  11. alert([iW,'x',iH].join(''));
  12. if(iW>iMaxW){ /**
  13. po co usuwać obrazek?? - po prostu lepiej go przeskalować coby widoku
  14. nie popsuł a transfer nie Twoja sprawa ;]
  15.  
  16. a jeśli obawiasz się, że opóźni wczytywanie strony to niestety już przy wczytywaniu
  17. obrazka przez skrypt do sprawdzania rozmiaru już to zrobiłeś - trza by to po stronie php rozwiązać
  18. *
  19. */
  20. iNewH = ~~(iH*iMaxW/iW);
  21. thatImg.setAttribute('width', [iMaxW,'px'].join(''));
  22. thatImg.setAttribute('height', [iNewH,'px'].join(''));
  23. }
  24. thatImg.src = sImg;
  25. }
  26. oImg.src = this.src;
  27. this.src = sWait;
  28. });
  29. });
[JAVASCRIPT] pobierz, plaintext


Ten post edytował zegarek84 28.11.2010, 19:36:35
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 12.10.2025 - 06:13