40

特定のリンクから画像を読み込もうとしています

var imgPath = $(imgLink).attr('href');

それをページに追加して、画像ビューアの特定の要素に挿入できるようにします。StackoverflowjQueryのドキュメントを際限なく検索しましたが、わかりません。

画像を読み込んだ後、幅、高さなど、さまざまな値を設定したいと思います。

アップデート:

これは私が得たものです。私が抱えている問題は、img要素で jQuery 関数を実行できないことです。

function imagePostition(imgLink) {

// Load the image we want to display from the given <a> link       
// Load the image path form the link
var imgPath = $(imgLink).attr('href');

// Add image to html
$('<img src="'+ imgPath +'" class="original">').load(function() {

    $(imgLink).append(this);

    var img = this;

    // Resize the image to the window width
    // http://stackoverflow.com/questions/1143517/jquery-resizing-image

    var maxWidth = $(window).width();       // window width
    var maxHeight = $(window).height();     // window height
    var imgWidth = img.width;               // image width
    var imgHeight = img.height;             // image height
    var ratio = 0;                          // resize ration
    var topPosition = 0;                    // top image position
    var leftPostition = 0;                  // left image postiton

    // calculate image dimension

    if (imgWidth > maxWidth) {
        ratio = imgHeight / imgWidth;
        imgWidth = maxWidth;
        imgHeight = (maxWidth * ratio);
    }
    else if (imgHeight > maxHeight) {
        ratio = imgWidth / imgHeight;
        imgWidth = (maxHeight * ratio);
        imgHeight = maxHeight;
    }

    // calculate image position

    // check if the window is larger than the image
    // y position
    if(maxHeight > imgHeight) {
        topPosition = (maxHeight / 2) - (imgHeight / 2);
    }
    // x position
    if(maxWidth > imgWidth) {
        leftPostition = (maxWidth / 2) - (imgWidth / 2);
    }

    $(imgLink).append(img);

    // Set absolute image position
    img.css("top", topPosition);
    img.css("left", leftPostition);

    // Set image width and height
    img.attr('width', imgWidth);
    img.attr('height', imgHeight);  

    // Add backdrop
    $('body').prepend('<div id="backdrop"></div>');

    // Set backdrop size
    $("#backdrop").css("width", maxWidth);
    $("#backdrop").css("height", maxHeight);

    // reveal image
    img.animate({opacity: 1}, 100)
    img.show()

});

};
4

6 に答える 6

60
$('<img src="'+ imgPath +'">').load(function() {
  $(this).width(some).height(some).appendTo('#some_target');
});

複数の画像に対して実行したい場合は、次のようにします。

function loadImage(path, width, height, target) {
    $('<img src="'+ path +'">').load(function() {
      $(this).width(width).height(height).appendTo(target);
    });
}

使用する:

loadImage(imgPath, 800, 800, '#some_target');
于 2012-06-02T15:42:07.527 に答える
14
var img = new Image();

$(img).load(function(){

  $('.container').append($(this));

}).attr({

  src: someRemoteImage

}).error(function(){
  //do something if image cannot load
});
于 2012-06-02T15:57:55.160 に答える
5

画像パスを取得したら、次のいずれかの方法を試してください

  1. (srcだけでなくより多くのattrを設定する必要があるため)htmlをビルドし、ターゲット領域に置き換えます

    $('#target_div').html('<img src="'+ imgPaht +'" width=100 height=100 alt="Hello Image" />');
    
  2. 「SRC」属性を変更する場合は、遅延を追加する必要がある場合があります

    setTimeout(function(){///this function fire after 1ms delay
          $('#target_img_tag_id').attr('src',imgPaht);
    }, 1);
    
于 2012-06-02T15:45:47.487 に答える
4

私はあなたがあなたのイメージをこのように定義していると想像します:

<img id="image_portrait" src="" alt="chef etat"  width="120" height="135"  />

このタグの画像をロード/更新し、属性(幅、高さ)を変更/設定するだけです。

var imagelink;
var height;
var width;
$("#image_portrait").attr("src", imagelink);
$("#image_portrait").attr("width", width);
$("#image_portrait").attr("height", height);
于 2012-06-02T15:49:25.813 に答える