Получение размеров из фонового изображения с использованием jQuery - PullRequest
1 голос
/ 22 июля 2010

Я загружаю фоновое изображение в div.Можно ли получить размеры из этого изображения?

Я пытаюсь сделать функцию, которая заменит текст на изображениях на лету, для использования в меню.

$.fn.MenuImages = function() {
  return this.each(function(i) {
    var name = $(this).find('a').attr('title');
    $(this).css("background-image","url(images/menu-"+name+"-h.png)");
  });
};

Проблема в том, что не все изображения имеют одинаковый размер.Я не уверен, как читать размеры файла, если я не загружаю его в скрытый div или что-то еще, но это звучит так грязно.Любые рекомендации?Спасибо!

Исправлено:

$.fn.MenuImages = function() {
return this.each(function(i) {
    var link = $(this).find('a');
    var name = link.attr('title');
    link.html("<img src='images/menu-"+name+"-h.png' />");
});

};

Ответы [ 3 ]

3 голосов
/ 22 июля 2010
​$('<img src='images/menu-"+name+"-h.png' />')​.attr('src',function(){
    return $('body').css('background-image');
})​​​.load(function(){
    w = $(this).width();
    h = $(this).height();
})​;

Ожидание загрузки изображения для захвата высоты и ширины.

1 голос
/ 22 июля 2010
var img=new Image();
img.onload=function(){
    alert(img.width);
    alert(img.height);
};
img.src="image.png";
0 голосов
/ 22 июля 2010

Jquery

w = $("img").width();
h = $("img").height();

рубин

IO.read('image.png')[0x10..0x18].unpack('NN')

Это дает массив [ширина, высота], который вы можете извлечь [0] для ширины и т. Д ...

...