Zacznij tutaj http://jsfiddle.net/5pR46/1/:
CSS
#wrapper canvas {
position: relative;
}
#wrapper canvas {
border: 1px solid red;
position: absolute;
background-color: transparent;
}
HTML
<div id="wrapper">
<canvas id="myCanvas" width="578" height="200"></canvas>
<canvas id="myCanvas2" width="578" height="200"></canvas>
</div>
JavaScript
function drawRadial(elemId, startColor, endColor, x0, y0, r0, x1, y1, r1) {
var canvas = document.getElementById(elemId);
var context = canvas.getContext('2d');
context.rect(0, 0, canvas.width, canvas.height);
// create radial gradient
var grd = context.createRadialGradient(x0, y0, r0, x1, y1, r1);
grd.addColorStop(0, startColor);
grd.addColorStop(1, endColor);
context.fillStyle = grd;
context.fill();
delete canvas;
delete context;
delete grd;
}
drawRadial('myCanvas', 'rgba(248,173,133,1.0)', 'rgba(0,0,0,0.0)', 50, 25, 110, 300, 50, 400);
drawRadial('myCanvas2', 'rgba(213,215,155,1.0)', 'rgba(0,0,0,0.0)', 500, 150, 110, 500, 50, 600);
Można dodać dowolną liczbę warstw, jak chcesz. Po prostu dodaj kolejne;
<canvas id="myCanvas#" width="578" height="200"></canvas>
.. gdzie #
jest nowym numerem Twojego warstwy (zachować je w odpowiedniej kolejności, aby uzyskać prawidłowe wyniki Tho. Można nawet iść tak daleko, jak tylko z JavaScript rozpocząć z pustym #wrapper
i po prostu wypełnić dynamicznie z canvas
- zwiększają identyfikatory, a następnie wiążą z nim pełną procedurę rysowania, zapewniając super czysty kod przy zachowaniu kontroli nad treścią.
Rozejrzyj się ze współrzędnymi i rozmiarami radialnych, które wkrótce zmieszczą się wystarczająco, jak tego chcesz, pozostawiam ci resztę kreatywności;)
Po prostu przeczytaj funkcje canvas5 drawImage() i createLinearGradient(), a także createRadialGradient() i rób kilka rzeczy. Jeśli znajdziesz jakiś problem, po prostu zadaj pytanie tutaj w SO .. –
Po prostu notatkę, z odpowiednim buforowaniem, ty może po raz pierwszy wyeliminować czas pobierania obrazu. Ponadto, w zależności od rozmiaru, można go oświetlić. –
@MadaraUchiha :) Dziękuję .. Wiem o tym ..Chciałbym tylko sprawić, aby klient (przeglądarka) wykonał jak najwięcej pracy, ponieważ sprawiłoby, że przeglądanie byłoby znacznie płynniejsze i przyjemniejsze. – Dimser