【发布时间】:2018-10-05 23:59:34
【问题描述】:
尝试对我的画布应用线性渐变,它正在移动球,但我不知道我哪里出错了,因为没有任何变化。我试图每次都在加载时应用随机颜色和随机角度。当我创建线性渐变时,我认为问题出在我的 onload 函数中
var $ = function(id) {return document.getElementById(id);};
var bounce;
var my_canvas;
var ball_array = new Array();
var linear_gradient;
var timer; //global variable to keep current timer
function randomGradient()
{
var color1 = randomColor(); //color 1
var color2 = '#FFFFFF'; //color 2
var gradient_angle = Math.round(Math.random()*360);
var random_gradient = "linear-gradient(" + gradient_angle + "deg, " + color1 + ", " + color2 + ")";
return random_gradient;
}
function ball(){
this.x=Math.random()*my_canvas.canvas.width;
this.y=Math.random()*my_canvas.canvas.height;
this.vx = (Math.random()-0.5);
this.vy = (Math.random()-0.5);
this.color = randomGradient();
this.radius = 12;
this.move=ball_move;
this.draw=ball_draw;
}
function ball_draw(){
my_canvas.save();
my_canvas.fillStyle=this.color; //****
my_canvas.strokeStyle='black';
my_canvas.lineWidth=2;
my_canvas.beginPath();
my_canvas.arc(this.x, this.y, this.radius,0, 6.28, false);
my_canvas.closePath();
my_canvas.stroke();
my_canvas.fill();
my_canvas.restore();
}
function create_balls(){
for(var i=0;i<75;i++){
var temp=new ball();
ball_array.push(temp);
}
}
function resize_can(){
my_canvas.canvas.width = window.innerWidth/2;
my_canvas.canvas.height = window.innerHeight/2;
}
window.onload = function() {
bounce = -1;
my_canvas = $("myCanvas").getContext('2d');
linear_gradient = my_canvas.createLinearGradient(0,0,window.innerWidth / 2,window.innerHeight / 2); //create linear gradient
window.onresize = resize_can;
resize_can();
create_balls();
timer = setInterval(going,5);
};
【问题讨论】:
标签: javascript animation canvas gradient