canvas渐变实现

//基础
var c = document.getElementById("canvas");
var ctx = c.getContext("2d");
var w = c.width = window.innerWidth;//屏幕宽高
var h = c.height = window.innerHeight;//屏幕宽高

1, 蒙版,

将rgba的透明度设为0.1

var y=0;
setInterval(function(){
    y+=3;
    ctx.fillStyle = "rgba(0, 0, 0, .1)";
    ctx.fillRect(0, 0, w, h);//清除每一帧
    ctx.fillStyle = 'hsl(180, 100%, 50%)';
    ctx.fillRect(50, y,5, 50);
},20)

2,createLinearGradient()线性渐变

//这些坐标相对于整个canvas
var grd=ctx.createLinearGradient(x0,y0,x1,y1);
//添加渐变,其中0是渐变点,最大1
grd.addColorStop(0,"hsla(180, 100%, 50%,0)");

x0 渐变开始点的 x 坐标
y0 渐变开始点的 y 坐标
x1 渐变结束点的 x 坐标
y1 渐变结束点的 y 坐标

使用该对象作为 strokeStylefillStyle 属性的值。

setInterval(function(){
    y+=3;
    ctx.fillStyle = "rgba(0, 0, 0, 1)";
    ctx.fillRect(0, 0, w, h);//清除每一帧

    var grd=ctx.createLinearGradient(50,y,55,y+50);
        grd.addColorStop(0,"hsla(180, 100%, 50%,0)");
        grd.addColorStop(1,"hsla(180, 100%, 50%,1)");
    ctx.fillStyle = grd;
    ctx.fillRect(50, y,5, 50);
},20)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一:canvas简介 1.1什么是canvas? ①:canvas是HTML5提供的一种新标签 ②:HTML5 ...
    GreenHand1阅读 4,719评论 2 32
  • 一、canvas简介 1.1 什么是canvas?(了解) 是HTML5提供的一种新标签 Canvas是一个矩形区...
    Looog阅读 3,972评论 3 40
  • 一、canvas简介 1.1 什么是canvas?(了解) 是HTML5提供的一种新标签 Canvas是一个矩形区...
    J_L_L阅读 1,558评论 0 4
  • 【canvas】 《2.6.5 面向对象基础复习补充:》 创建对象的方式: * var o = { name: '...
    夜幕小草阅读 392评论 0 0
  • 1. 我叫曹正淳,是个阉人。 第一次做阉人,是在七岁。 很少有人这么小就成为阉人,除非他有个跟我一样的爹。 他是个...
    快走我有神经病_阅读 2,541评论 1 2