var canvas = document.getElementById('poster');
var windowWidth = $(window).width();
var windowHeight = $(window).height();
console.log(windowWidth, windowHeight)
canvas.width = windowWidth * 0.76;
canvas.height = canvas.width * 1.6;
canvas.style.marginLeft = windowWidth * 0.12 + 'px';
canvas.style.marginTop = windowHeight * 0.07 + 'px';
var ctx = canvas.getContext('2d');
var ratio = getPixelRatio(ctx);
// {width,x,y}
var postionArr = [
{width: 0.86, x: 0.07, y: 0},
{width: 0.88, x: 0.06, y: 0.33},
{width: 0.76, x: 0.12, y: 0.335},
{width: 0.72, x: 0.14, y: 0.34},
{width: 0.6, x: 0.02, y: 1.2},
{width: 0.2, x: 0.68, y: 1.21}];
$('.poster-p').each(function (index, item) {
var img = new Image();
img.src = $(item).attr('src');
img.onload = function () {
ctx.drawImage(img, $('#poster').width() * postionArr[index].x * ratio, $('#poster').width() * postionArr[index].y * ratio, $('#poster').width() * postionArr[index].width * ratio, $('#poster').width() * postionArr[index].width * ($(item).height() / $(item).width()) * ratio);
};
});
現(xiàn)在這個順序正常繪制層級應(yīng)該是對的 應(yīng)該是加載完成順序不同
所以文件比較大的最后繪制在最上面了 沒有按照循環(huán)的順序
請問應(yīng)該怎么控制呢
換成小一些的圖片能正常順序 的繪制了
寫在回答里吧。
你寫的循環(huán)體里,只做了三個事,新建、加載、注冊回調(diào)。而注冊回調(diào)并不會阻塞下一循環(huán)的發(fā)生,所以在加載時間有長有短的前提下,自然就是按大小來決定先后次序咯。
所以我為什么說你可以在前邊加個預(yù)加載,就是因為要斷開“加載”和“drawImage”之間的依賴關(guān)系(因為你drawImage是寫在加載回調(diào)里的,所以實際上drawImage會依賴于加載):先加載,然后按次序(去找個獨(dú)立的次序數(shù)據(jù)來)drawImage,就不會出現(xiàn)你的這個問題了。
北大青鳥APTECH成立于1999年。依托北京大學(xué)優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國家
達(dá)內(nèi)教育集團(tuán)成立于2002年,是一家由留學(xué)海歸創(chuàng)辦的高端職業(yè)教育培訓(xùn)機(jī)構(gòu),是中國一站式人才培養(yǎng)平臺、一站式人才輸送平臺。2014年4月3日在美國成功上市,融資1
北大課工場是北京大學(xué)校辦產(chǎn)業(yè)為響應(yīng)國家深化產(chǎn)教融合/校企合作的政策,積極推進(jìn)“中國制造2025”,實現(xiàn)中華民族偉大復(fù)興的升級產(chǎn)業(yè)鏈。利用北京大學(xué)優(yōu)質(zhì)教育資源及背
博為峰,中國職業(yè)人才培訓(xùn)領(lǐng)域的先行者
曾工作于聯(lián)想擔(dān)任系統(tǒng)開發(fā)工程師,曾在博彥科技股份有限公司擔(dān)任項目經(jīng)理從事移動互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍(lán)懿科技有限責(zé)任公司從事總經(jīng)理職務(wù)負(fù)責(zé)iOS教學(xué)及管理工作。
浪潮集團(tuán)項目經(jīng)理。精通Java與.NET 技術(shù), 熟練的跨平臺面向?qū)ο箝_發(fā)經(jīng)驗,技術(shù)功底深厚。 授課風(fēng)格 授課風(fēng)格清新自然、條理清晰、主次分明、重點(diǎn)難點(diǎn)突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫,具有快速界面開發(fā)的能力,對瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁制作和網(wǎng)頁游戲開發(fā)。
具有10 年的Java 企業(yè)應(yīng)用開發(fā)經(jīng)驗。曾經(jīng)歷任德國Software AG 技術(shù)顧問,美國Dachieve 系統(tǒng)架構(gòu)師,美國AngelEngineers Inc. 系統(tǒng)架構(gòu)師。