2009-10-29 2 views
3

С JQuery, я изменить СРК изображения по щелчкуImage родной ширина в JQuery

$("#thumb li img").click(function() { 
var newlinkimage = $(this).attr("src"); 

newlinkimage = newlinkimage.substring(14,17); 

    $("#avant img").attr("src", 'retouche-hr' + newlinkimage + '-a.jpg'); 
    $("#apres img").attr("src", 'retouche-hr' +newlinkimage + '-b.jpg'); 

Проблема заключается в том, что новая ширина изображения отличается, что старый. Как получить ширину NATIVE нового изображения (например, маленькая стрелка, которая получается в Dreamweaver

ответ

3

Это простой способ javascript для этого. Это должно быть легко интегрировать в ваш код.

var newimage = new Image(); 
newimage.src = 'retouche-hr' + newlinkimage + '-a.jpg'; // path to image 
var width = newimage.width; 
var height = newimage.height; 
+1

width always return 0 – menardmam

+0

Убедитесь, что путь изображения является допустимым путем для изображения до фактического изображения. –

+1

Изображение должно быть загружено, когда вы вызываете высоту/ширину. Вторая строка загружает изображение, но не может быть завершена загрузка по 3-й или 4-й линии. –

2

Установлено ли для этого старого изображения ширина и высота? Если вы используете $ (изображение) .width (""), он должен сбросить ширину до того, что было до того, как вы применили к ней какие-либо изменения ширины (аналогично для высоты). Я не думаю, что это будет работать для изображений, у которых их ширина была установлена ​​через CSS или свойство. к старой ширине вы можете использовать .outerWidth(), чтобы получить ширину изображения.

1

Вы хотите получить реальную ширину изображения перед его заменой, а затем установите новое изображение на эту ширину. это с $ (img).:

var pic_real_width; 
var pic_real_height; 

$(img).load(function() { 
    // need to remove these in of case img-element has set width and height 
    $(this).removeAttr("width") 
      .removeAttr("height"); 

    pic_real_width = this.width; 
    pic_real_height = this.height; 
}); 

$("#thumb li img").click(function() { 
var newlinkimage = $(this).attr("src"); 

newlinkimage = newlinkimage.substring(14,17); 

     $("#avant img").attr("src", 'retouche-hr' + newlinkimage + '-a.jpg').width(pic_real_width); 
     $("#apres img").attr("src", 'retouche-hr' +newlinkimage + '-b.jpg').width(pic_real_width); 
+0

попробует, прямо сейчас, хорошо выглядеть! – menardmam

1

этот код всегда возвращают нулевое значение '0'

var newimage = new Image(); 
    newimage.src = 'retouche-hr' + newlinkimage.substring(14,17) + '-a.jpg'; 
    var width = newimage.naturalWidth; 
    var height = newimage.naturalHeight; 
    alert (width); 

ПОЧЕМУ ???