亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

獲取canvas節點在渲染dom之前,為什么可以獲取到?

var render = function(){
??????????? var html='';
??????????? var padding=2;
?????????? ?
??????????? var winWidth=zWin.width();
??????????? var picWidth=(winWidth-padding*3)/4;
??????????? for(var i = 1;i<=total;i++){
?????????? ??? ?var imgSrc='img/'+i+'.jpg';
?????????? ??? ?var p= i%4 == 1? 0:padding;
?????????? ??? ?html+='<li style="width:'+picWidth+'px;height:'+picWidth+'px;padding-top:2px;padding-left:'+p+'px"><canvas???????? id="cvs_'+i+'"></canvas></li>'

?????????? ??? ?var imageObj = new Image();
?????????? ??? ?imageObj.index=i;
?????????? ??? ?imageObj.onload = function(){
?????????? ??? ??? ?var cvs = $('#cvs_'+this.index)[0].getContext('2d');
?????????? ??? ??? ?//經過$包裝后成為一個zepto對象,后面加【0】轉換dom對象
?????????? ??? ??? ?//getContext('2d')繪圖環境
?????????? ??? ??? ?cvs.width=this.width;
?????????? ??? ??? ?cvs.height = this.height;
?????????? ??? ??? ?cvs.drawImage(this,0,0);
?????????? ??? ?}
?????????? ??? ?imageObj.src = imgSrc;
??????????? }

??????????? $('#container').html(html);
?? ??? ?}
?? ??? ?render();

代碼中突出的部分可以看出,在 for 循環中 canvas作為html變量中的字符串存在 ,并未渲染成DOM(循環結束后才通過$('#container').html(html);寫入dom),此時為什么可以通過?var cvs = $('#cvs_'+this.index)[0].getContext('2d');獲取到該節點?


正在回答

1 回答

圖片加載需要時間,加載完畢后 ,for循環也結束了

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
移動端的WEB相冊
  • 參與學習       47956    人
  • 解答問題       227    個

本課程通過一個移動端相冊案例,帶您一步步了解移動端框架

進入課程

獲取canvas節點在渲染dom之前,為什么可以獲取到?

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號