//read where the click is made
$(document).click(function(e) {
var x = event.clientX;
var y = event.clientY;
drawCircle(x,y);
});
//array used for random colors of circles
var color = ["#E72B8E", "#238A9B", "#F05C3F"];
//setting canvas and its size
var c = document.getElementById("canvas");
c.width = window.innerWidth;
c.height = window.innerHeight;
var ctx = c.getContext("2d");
//function to draw circles
function drawCircle(x,y){
//randomly chose color and size for circles
var randC = color[Math.floor(Math.random() * color.length)];
var randS = Math.floor(Math.random() * (80 - 30)) + 30;
//draw circles
ctx.beginPath();
ctx.arc(x,y,randS,0,2*Math.PI);
//make gradient for random color and fill
var grd=ctx.createLinearGradient(0,0,170,0);
grd.addColorStop(0,randC);
grd.addColorStop(1,"transparent");
ctx.fillStyle=grd;
ctx.fill();
ctx.closePath();
}
所以,我試圖做的是每次單擊畫布並使其掉下時畫一個圓圈。使用JavaScript在HTML5畫布上繪製倍數下降圓圈
我的第一個問題是我被困在如何讓我的圈子留在畫布上。每次點擊時,我都會畫出一個新的圓圈,但之前繪製的圓圈已經消失。所以,我試圖在drawCircle函數外面設置畫布線,所以無論何時調用函數,它都不會重置畫布。現在點擊根本不會畫圓。功能之外的這些線是否會影響某些內容?
我的第二個問題是我想要有從100%顏色到透明的漸變圓,但似乎漸變是相對於畫布中圓的位置。例如,如果我點擊框架的左側邊緣,漸變效果會以我想要的方式完美呈現,但隨着漸變效果的變化,漸變的透明部分會變得更大,一旦我點擊了漸變的中間部分框架,我根本看不到這個圓圈。而漸變的透明部分對我來說似乎很黑。我能做些什麼來解決它?
最後,一旦我完全搞清楚如何以我想要的方式繪製多個圓,我最終會讓它們像雪花一樣掉下來。有沒有可以促進它的功能?
非常感謝!