You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

41 lines
1.4 KiB

canvas(id="snow") 不支持canvas
style
| canvas#snow { position: absolute; z-index: -1; top: 0; left: 0; opacity: 0.5; }
script(type="text/javascript", src="https://code.jquery.com/jquery-3.6.0.min.js")
script
| $(function () {
| var W = $(window).width(),
| H = $(window).height(),
| x2 = -15, len = 30, count = 100;
| var canvas = document.getElementById("snow");
| canvas.width = W;
| canvas.height = H;
| var ctx = canvas.getContext('2d');
|
| setInterval(clearCanvas,100);
| function clearCanvas() {
| ctx.clearRect(0, 0, W, H);
| draws();
| }
|
| function draw(x, y) {
| //canvas写渐变:createLinearGradient(startX,startY,endX,endY)
| var grd = ctx.createLinearGradient(x, y, x + x2, y + len);
| grd.addColorStop(0, "rgba(0,0,0,0)");
| grd.addColorStop(0.5, "rgba(105,105,105,1)");
| grd.addColorStop(1, "rgba(255,255,255,1)");
| ctx.strokeStyle = grd;
|
| ctx.beginPath();
| ctx.moveTo(x, y);
| ctx.lineTo(x + x2, y + len);
| ctx.lineWidth = 2;
| ctx.stroke();
| ctx.closePath();
| }
| function draws() {
| for (var i = 1; i <= count; i++) {
| draw(Math.random() * W, Math.random() * H);
| }
| }
|});