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

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

沒運行,只是看到,cvs.width=this.width;cvs.height=this.height; 能找到寬度和高度嗎?imageObj貌似沒有定義寬度和高度吧! 應該是cvs.width=picwidth;吧!

正在回答

3 回答

這個地方的代碼,老師寫的有些問題。我來給你解釋一下。

第一,img.src="xxx.jpg"這行是給Img賦值,而img.onload=function(){...}只是給Img加上了一個事件,這兩行代碼的前后順序沒有關系的。因為事件只是給這個元素訂閱了一個事件方法,但是你并沒有觸發這個事件,只有當img.src被賦予了值并加載了這張圖片的時候才會觸發Onload事件。這個應該很好理解。比如你訂閱了某一期的報紙,當這一期報紙被印刷出來后就給你發消息。但是這個時候并沒有完成印刷,難道你叫印刷廠給你發消息有問題嗎。

第二,老師賦值高度和寬度的變量是canvas.getContext("2d")這個地方是錯誤的,應該是給畫布定義寬度高度,也就是canvas。同時寬高值也不應該使用this.height, this.width,因為我們知道這里的this代表的是圖片Img對象,而圖片的寬高并不是我們計算出來的圖片應該顯示的寬度和高度,應該使用前面計算的picWidth. 所以onload函數應該是

var?canvas=$("#canvas"+this.index);?
var?context=canvas.getContext("2d");
canvas.width=picWidth;
canvas.height=picHeight;
context.drawImage(img,?0?,?0);


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

小王子抓貓咪

剛才的代碼有個地方寫錯了 var canvas=$("#canvas"+this.index).get(0); 因為$獲取的是JQuery對象,而我們需要的是DOM對象。
2016-04-02 回復 有任何疑惑可以回復我~

感覺實際上是他講解的邏輯先后的問題,imageObj.src 應該在前面賦值,就好理解了。onload方法是加載的時候的回調函數

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

我針對這塊也不是很理解,希望老師能夠出來指點一下

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

舉報

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

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

進入課程
微信客服

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

幫助反饋 APP下載

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

公眾號

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