由於某種原因,當我點擊這個畫廊時,我創建時,分配給CSS的尺寸並不總是在新圖像加載到.product-image容器。我認爲這是由於在圖像仍在加載時分配css屬性導致的,因爲它似乎只發生在較大的圖像上。一旦再次點擊「.more-views a」,就會計算出正確的尺寸。jquery動態圖像調整大小沒有采取正確的圖像尺寸
function loadNewImage(newurl) {
jQuery(".col-main .product-image a").attr("href",newurl);
jQuery(".col-main .product-image img").attr("src", newurl);
jQuery(".col-main .product-image img").css({'width': '','height':''});
}
function resizeImageByAspect(ele) {
var maxWidth = 465;
var maxHeight = 436;
var ratio = 0;
var width = ele.width();
var height = ele.height();
ele.css("width", width);
ele.css("height", height);
if (width > maxWidth) {
ratio = maxWidth/width;
ele.css("width", maxWidth);
ele.css("height", height * ratio);
height = height * ratio;
width = width * ratio;
}
if (height > maxHeight) {
ratio = maxHeight/height;
ele.css("height", maxHeight);
ele.css("width", width * ratio);
width = width * ratio;
}
}
jQuery(document).ready(function(){
resizeImageByAspect(jQuery(".col-main .product-image img"));
jQuery(".more-views a").click(function(event){
jQuery(".col-main .product-image img").fadeOut("fast", function(){
loadNewImage(jQuery(event.target).parent().attr('href'));
resizeImageByAspect(jQuery(".col-main .product-image img"));
}).delay(500);
jQuery(".col-main .product-image img").fadeIn("fast");
return false;
});
});
Thx man !.新的高度和寬度css似乎還有一個延遲,就是新的圖像。我將高度寬度css reset移動到load()的回調函數中,並更改爲「慢」淡入淡出。現在它像丁塔一樣煙燻 – russjman