한 번에 하나의 큰 이미지가 표시되는 매우 간단한 이미지 갤러리가 있습니다. 주 이미지의 오른쪽에있는 큰 캡션을 이미지 자체에 가까이 배치하려고합니다. 주 이미지가 수평 인 경우 캡션이 맨 오른쪽에 있습니다. 기본 이미지가 수직 인 경우 캡션은 DIV 오른쪽에서 약 30px입니다.이미지 변경 원본 속성, jQuery의 높이와 너비를 구하십시오.
썸네일을 클릭하면 새 이미지가 만들어지고로드됩니다. 그런 다음 주 이미지의 원본 특성을 변경하고 차원을 가져 와서 그에 따라 캡션을 배치하려고합니다. 그러나 다른 크기의 이미지를 클릭하면 이전 이미지의 크기 만 표시됩니다. 같은 이미지를 다시 클릭하면 작동합니다. 여기
는 jQuery-
$("#apparatus_thumbs a").click(function() {
var src = $(this).attr("href");
var caption = $(this).attr("title");
var wrap = $("#apparatusPhoto").fadeTo("medium", 0.5);
var img = new Image();
$(img).load(function() {
wrap.fadeTo('fast', 1);
$("#apparatusPhoto").attr('src', src);
var height = $("#apparatusPhoto").height();
var width = $("#apparatusPhoto").width();
if (height > width) {
$("#apparatusPhotoCaption").css('right', '150px');
} else {
$("#apparatusPhotoCaption").css('right', '0px');
}
if (caption != '') {
$("#apparatusPhotoCaption").html(caption);
$("#apparatusPhotoCaption").fadeIn('slow');
} else {
$("#apparatusPhotoCaption").fadeOut('slow');
}
console.log('image loaded');
}).attr('src', src);
return false;
});
어떤 아이디어인가?
업데이트 이것은 작동하는 것 같습니다. 이미지를 제거한 다음 새 이미지를 추가하여 원하는 결과를 얻은 것 같습니다. 당신이 뭔가에 이미로드 된 값에서 이미지 .src
을 변경할 때 .load()
안정적으로 모든 브라우저에서 실행됩니다 경우
$("#apparatus_thumbs a").click(function() {
var src = $(this).attr("href");
var caption = $(this).attr("title");
var wrap = $("#apparatusPhoto").fadeTo("medium", 0.5);
var img = new Image();
$(img).load(function() {
wrap.fadeTo('fast', 1);
$("#apparatusPhoto").find('img').remove();
$("#apparatusPhoto").append(img);
var height = $("#apparatusPhoto img").height();
var width = $("#apparatusPhoto img").width();
if (height > width) {
$("#apparatusPhotoCaption").css('right', '150px');
} else {
$("#apparatusPhotoCaption").css('right', '0px');
}
if (caption != '') {
$("#apparatusPhotoCaption").html(caption);
$("#apparatusPhotoCaption").fadeIn('slow');
} else {
$("#apparatusPhotoCaption").fadeOut('slow');
}
console.log('image loaded');
}).attr('src', src);
return false;
});
기본적으로 DOM에서 원본 이미지를 제거하고 새 이미지 개체를 만든 다음 다시 DOM에'.load()'를 삽입합니다. – NightMICU
나를 올바른 길로 가라. 그러면 아무도 대답하지 않았다. 그래서 당신이이기는 것처럼 보인다. 당신의 도움을 주셔서 감사합니다! :) – NightMICU