哪里有問題?? 畫出來的線完全不對了
var canvas=document.getElementById('canvas'); var ctx=canvas.getContext('2d'); ctx.moveTo(0,0); ctx.lineTo(450,450); ctx.stroke() 哪里有問題?? 畫出來的線完全不對了
var canvas=document.getElementById('canvas'); var ctx=canvas.getContext('2d'); ctx.moveTo(0,0); ctx.lineTo(450,450); ctx.stroke() 哪里有問題?? 畫出來的線完全不對了
舉報(bào)
2016-10-24
畫線畫成這樣的畫,那就是你對canvas寬度和高度設(shè)置的問題了。
????WC3標(biāo)準(zhǔn):canvas寬度和高度 在HTML中通過標(biāo)簽屬性的方法進(jìn)行設(shè)置。如下:
????<canvas?id="canvas"?height="450px"?width="450px"></canvas>
????你出現(xiàn)畫布的寬高正常,而在執(zhí)行繪圖操作時(shí)對寬高識別錯(cuò)誤,主要問題在于,你的canvas畫布的寬高是通過CSS?樣式設(shè)置的。
錯(cuò)誤的注意原因:通過css對canvas畫布寬高設(shè)置, canvs畫布本身也是一個(gè)html標(biāo)簽,所以在畫布的顯示上是沒有問題的,但是我們執(zhí)行繪圖操作使用的是?var context = canvas.getContext('2d'); ?canvas上下文對象,而這個(gè)對象無法識別css中的寬高,所以會(huì)出現(xiàn)這樣的錯(cuò)誤。
解決方法有兩個(gè):
? ? 方法一:???
????????html設(shè)置:<canvas?id="canvas"?height="450px"?width="450px"></canvas>
????????在html中使用標(biāo)簽屬性的方法設(shè)置canvas標(biāo)簽的寬和高。
????方法二:
????????在JS中設(shè)置:
????????var canvas = document.getElementById('canvas');
????????//設(shè)置調(diào)用canvas對象屬性分別設(shè)置的寬度和高度
????????canvas.width = 450;
????????canvas.height = 450;
2017-08-30
我的也是這樣
2016-10-23
2016-10-21
JS代碼部分:
HTML代碼部分:
CSS代碼部分:
案例圖片:
完整的案例代碼,希望對你有用。
2016-10-21
你查下HTML代碼里面的canvas id屬性是否和你JS找對象時(shí)用的id一致,<canvas id="canvas" height="450px" width="450px"></canvas>,測試了,你js代碼部分是沒有錯(cuò)誤的。