這裏是我的javascript代碼:不能清除HTML/JavaScript的帆布
canvas = document.getElementById("canvas");
context = canvas.getContext("2d");
width = canvas.width = window.innerWidth;
height = canvas.height = window.innerHeight;
particle = [];
particleCount = 0,
gravity = 0.3,
colors = [
'#f44336', '#e91e63', '#9c27b0', '#673ab7', '#3f51b5',
'#2196f3', '#03a9f4', '#00bcd4', '#009688', '#4CAF50',
'#8BC34A', '#CDDC39', '#FFEB3B', '#FFC107', '#FF9800',
'#FF5722', '#795548'
];
function drawparticles(){
for(var i = 0; i < 250; i++){
particle.push({
x : width/2,
y : height/2,
boxW : randomRange(5,15),
boxH : randomRange(5,15),
size : randomRange(2,6),
spikeran:randomRange(3,5),
velX :randomRange(-8,8),
velY :randomRange(-50,-10),
angle :convertToRadians(randomRange(0,360)),
color:colors[Math.floor(Math.random() * colors.length)],
anglespin:randomRange(-0.2,0.2),
draw : function(){
context.save();
context.translate(this.x,this.y);
context.rotate(this.angle);
context.fillStyle=this.color;
context.beginPath();
// drawStar(0, 0, 5, this.boxW, this.boxH);
context.fillRect(this.boxW/2*-1,this.boxH/2*-1,this.boxW,this.boxH);
context.fill();
context.closePath();
context.restore();
this.angle += this.anglespin;
this.velY*= 0.999;
this.velY += 0.3;
this.x += this.velX;
this.y += this.velY;
if(this.y < 0){
this.velY *= -0.2;
this.velX *= 0.9;
};
if(this.y > height){
this.anglespin = 0;
this.y = height;
this.velY *= -0.2;
this.velX *= 0.9;
};
if(this.x > width ||this.x< 0){
this.velX *= -0.5;
};
},
});
}
}
function drawScreen(){
for(var i = 0; i < particle.length; i++){
particle[i].draw();
}
}
function update(){
var fps = 120;
context.clearRect(0,0,width,height);
drawScreen();
setTimeout(function() {
requestAnimationFrame(update);
}, 1000/fps);
}
update();
function clearparticles(content){
content.clearRect(0, 0, canvas.width, canvas.height);
}
function randomRange(min, max){
return min + Math.random() * (max - min);
}
function randomInt(min, max){
return Math.floor(min + Math.random()* (max - min + 1));
}
function convertToRadians(degree) {
return degree*(Math.PI/180);
}
功能clearparticles是我試圖清除我的畫布上的HTML/JavaScript的顆粒。但是,這似乎並沒有工作。 看來我得到以下錯誤:無法讀取undefined屬性'clearRect'
我想不出其他任何東西來使它工作。我究竟做錯了什麼?
編輯:這裏是HTML代碼(測試代碼):
<style>
html, body {
padding:0;
margin:0;
width: 100%;
height: 100%;
cursor: default; text-align: center;
font-family: 'PT Sans', sans-serif;
}
canvas {
pointer-events:none;
position: absolute;
left:0;
top:0;
z-index:0;
border:0px solid #000;
}
</style>
<script src="http://code.jquery.com/jquery-1.9.0.min.js"></script>
</head>
<body>
<canvas id="canvas"></canvas>
<script language="javascript" type="text/javascript" src="confetti2.js"></script>
<button onclick="drawparticles()">Spawn</button>
<button onclick="clearparticles()">Clear</button>
</body>
</html>
你不包括你調用clearparticles的代碼 –
告訴我們調用clearparticles()方法的代碼。您可能沒有提供有效的畫布作爲該函數的參數。 – HaukurHaf
噢,抱歉,這只是一個簡單的測試: '<按鈕的onclick = 「clearparticles()」>清除' 我調用主腳本'<按鈕的onclick = 「drawparticles()」>派生'我把OP –