Получение ширины от масштабированного изображения - PullRequest
2 голосов
/ 06 марта 2012

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

То, что я хочу сделать, это добавить каждый элемент с ограниченной высотой и прочитать, какова соответствующая ширина, после того, как он масштабирован.Проблема, как вы увидите, состоит в том, что console.log дает мне значение 0 для ширины.

Ответы [ 3 ]

4 голосов
/ 06 марта 2012

Используйте функцию jQuery .load() для выполнения всех вычислений после загрузки изображения:

var number = 0;

$(document).ready(function(){
    setInterval(function(){
        console.log();
        $('.container').prepend(
          $('<img/>').attr({
           src: "http://www.upress.umn.edu/book-division/images-1/other images/blockc.gif/image_thumb"
           id:'img' + (number++)
}).load(function(){
 console.log($(this).width())
})
    },3000);
});​
1 голос
/ 06 марта 2012

Мохсен и Джастис правы.Тем не менее, вы все еще можете немного упростить:

var number = 0;
$(document).ready(function(){
    setInterval(function(){
        console.log();
        $('.container').prepend($('<img '
                + 'id="img'+number+'"src="http://www.upress.umn.edu/'
                + 'book-division/images-1/other-'
                + 'images/blockc.gif/image_thumb">').load(function() {
            console.log($(this).width());            
        }));
        number++;
    }, 3000);
});​
1 голос
/ 06 марта 2012

http://jsfiddle.net/w7rcn/

Ширина считывалась до полной загрузки изображения.

Итак, мы использовали ту же концепцию, но применили ее после того, как сработало событие img load:

 $('#img' + String(number)).load(function() {
            console.log($(this).width());
        });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...