第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

難道你們參考老師的代碼,瀏覽器不會報錯嗎?

<!DOCTYPE>
<html>
<head>
<script>
var?balls=[]
var?canvas=document.getElementById('Canvas');
var?context=canvas.getContext('2d');
window.onload=function(){
canvas.width=1024;
canvas.height=768;

for(i=0;i<10;i++){
var?aball={
x:Math.random()*canvas.width,
y:Math.random()*canvas.height,
R:Math.random()*50+20
}
balls[i]=aball
}
draw()
canvas.addEventListener('mousemove',detect);

}
function?draw(x,y){
context.clearRect(0,0,canvas.width,canvas.height);
for(var?i=0;i<balls.length;i++){
context.beginPath();
context.arc(balls.x,balls.y,balls.R,0,2*Math.PI,false);
if(context.isPointInPath(x,y)){
context.fillStyle='red'
}else{
context.fillStyle='#0090D2'
}
context.fill()
}
}

function?detect(event){
var?x=event.clientX-canvas.getBoundingClientRect().left;
var?y=event.clientY-canvas.getBoundingClientRect().top;

draw(x,y)
}
</script>
</head>
<body>
<canvas?id='Canvas'?style="margin:50px?400px?auto;border:1px?solid?#ccc"></canvas>
</body>
</html>

我的瀏覽器報錯了,說是 Cannot read property 'getContext' of null? 應(yīng)該是無法獲取上下文環(huán)境,我知道報錯的原因,但不知道如何去解決,我試過把

var?canvas=document.getElementById('Canvas');
var?context=canvas.getContext('2d');

放到window.onload 里面來,但無濟(jì)于事。

請大神教我如何解決

正在回答

1 回答

<!DOCTYPE?html>
<html>
??<head>
????<meta?charset="UTF-8">
????<meta?name="viewport"?content="width=device-width,?initial-scale=1.0">
????<meta?http-equiv="X-UA-Compatible"?content="ie=edge">
????<title>Canvas繪圖詳解?16</title>
????<style>
??????canvas?{
????????border:?1px?solid?#aaa;
????????display:?block;
????????margin:?50px?auto;
??????}
????</style>
??</head>
??<body>

????<canvas?id="canvas"?width="800"?height="800">不好意思,您的瀏覽器不支持canvas。</canvas>

????<script?type="text/javascript">

??????var?balls?=?[];
??????var?canvas?=?document.getElementById("canvas");
??????var?ctx?=?canvas.getContext("2d");

??????window.onload?=?function()?{

????????for?(var?i?=?0;?i?<?10;?i++)?{
??????????var?ball?=?{
????????????x:?Math.random()?*?800,
????????????y:?Math.random()?*?800,
????????????r:?Math.random()?*?50?+?20
??????????};
??????????balls[i]?=?ball;
????????}

????????canvas.addEventListener("mousemove",?detect);

??????};

??????function?draw(x,?y)?{

????????for?(var?i?=?0;?i?<?balls.length;?i++)?{
??????????ctx.beginPath();
??????????ctx.arc(balls[i].x,?balls[i].y,?balls[i].r,?0,?Math.PI?*?2);
??????????if?(ctx.isPointInPath(x,?y))?{
????????????ctx.fillStyle?=?"#ff0000";
??????????}?else?{
????????????ctx.fillStyle?=?"#058";
??????????}
??????????ctx.fill();
????????}

??????}

??????function?detect(e)?{

????????var?x?=?e.clientX?-?canvas.getBoundingClientRect().left;
????????var?y?=?e.clientY?-?canvas.getBoundingClientRect().top;

????????draw(x,?y);

??????}

????</script>

??</body>
</html>


0 回復(fù) 有任何疑惑可以回復(fù)我~
#1

慕函數(shù)5127544 提問者

所以說js代碼要放在canvas的后面嗎?瀏覽器解析的時候?qū)@些會有先后順序的嗎?
2017-12-25 回復(fù) 有任何疑惑可以回復(fù)我~
#2

Tom_Kwok 回復(fù) 慕函數(shù)5127544 提問者

<script></script>放在body的尾部可以保證頁面中的html元素都已經(jīng)被解析,這樣獲取dom元素【如document.getElementById('xxx')】的時候不會出錯。?
2017-12-25 回復(fù) 有任何疑惑可以回復(fù)我~

舉報

0/150
提交
取消
Canvas繪圖詳解
  • 參與學(xué)習(xí)       72987    人
  • 解答問題       434    個

Canvas系列教程第二課,詳解Canvas各接口,讓同學(xué)徹底掌握Canvas繪圖

進(jìn)入課程

難道你們參考老師的代碼,瀏覽器不會報錯嗎?

我要回答 關(guān)注問題
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號