我有一個<li>
元素的數組,我試圖將其製作爲一個旋轉木馬,只是我希望圖像的大小超過640x480以及居中框架。如何從onload保存圖像的寬度和高度?
我有以下代碼: HTML:
<ul id="carousel">
<li><img src="pic1.jpg" /><p><b>2012</b> something</p></li>
<li><img src="pic2.jpg" /><p><b>2016</b> something else.</p></li>
</ul>
JQuery的:
var imW=[];
var imH=[];
//...
$('li',obj).each(function(index){
itemSources.push($(this).find('img').attr('src'));
var img = $(this).find('img');
imW.push(img.width());
imH.push(img.height());
});
然後我用itemSources[i]
,imW[i]
和imH[i]
來調整圖片的大小,並添加任何必要的填充,以居中的框架。
這工作正常,只要我的互聯網速度足夠快,並在計算大小之前加載圖像。 (哈!)
我知道我想是這樣的:
var img = new Image();
img.onload = function() {
console.log(this.width + 'x' + this.height);
};
img.src = $(this).find('img').attr('src');
但我不能保存寬度和高度,因爲只是推到陣列失控的範圍,所以沒有創造外部回調那。如何將這些容易打印到控制檯的尺寸保存到我的imW和imH數組中?
將這些值放入數組後需要做什麼? – gurvinder372
你可以基本上設置一個圖像的屬性,像'data-loaded =「true」'一旦圖像被加載,當最後一個圖像加載時,你可以迭代圖像並加載數組 – gurvinder372
我使用它們時我渲染旋轉木馬來調整圖像大小並添加填充(左/上),以便如果其中一個圖像尺寸較小,圖像將顯示居中。 – adinutzyc21