Получить ширину и высоту изображения - PullRequest
4 голосов
/ 29 апреля 2009

Мне нужно получить размеры изображения в javascript (jQuery), когда для него не указаны стили (jQuery css () возвращает 0).

Может быть, это потому, что я загружаю изображение с помощью jQuery непосредственно перед тем, как запрашивать его размеры. Если это так, есть ли событие для прослушивания, которое сообщает, когда изображение было загружено?

Ответы [ 5 ]

3 голосов
/ 29 апреля 2009

Возможно изображение загружено не полностью, поэтому размеры не могут быть заданы. Но без вашего кода я не могу сказать, что вы делаете неправильно, но вот Пример , который будет работать:

   function LoadImage(isrc) 
   {
     var oImg = new Image();
     oImg.src = isrc;
     if (oImg.complete) {
      window.alert(oImg.src + ' ' + oImg.width + ' x ' + oImg.height);
     }
     else {
       window.setTimeout('iLoad(imgsrc)', 1000);
     }
   }

  <body onLoad='LoadImage(imgsrc)'>
1 голос
/ 29 апреля 2009

вот ссылка, которая помогает, посмотрите на демо: http://docs.jquery.com/Events/load

с jquery существует событие load (), которое запускается, когда изображение завершает загрузку, т.е.:

<script type="text/javascript">
    $(document).ready(function()
    {
        $('#theImage').load(function()
        {
            // do the stuff here.
        });
    });
</script>


<img src="blah.jpg" id="theImage" />
0 голосов
/ 29 апреля 2009

Вы можете попытаться объединить karim79 и John Boker . Попробуйте предварительно загрузить изображение в скрытый DOM, и при загрузке вы можете попытаться получить его ширину и высоту.

0 голосов
/ 29 апреля 2009

Вы можете использовать img onload , чтобы получить размеры после загрузки изображения:

<img src="..." onload="getDimensions(this)" />
0 голосов
/ 29 апреля 2009

В зависимости от того, что вы ищете, image.width или image.naturalWidth (и эквиваленты высоты) width / height задает атрибуты width / height для тега изображения, naturalWidth / Height задает размеры фактического базового изображения. *

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...