用H5 canvas实现唯美渐变色块的绘制

随着Web前端的不断发展,我们已经可以使用H5+js+css做出很多复杂而优美的视觉效果。一幕幕的视觉盛宴背后是网页设计人员精巧的构思和前端开发人员的精湛技能。今天我们来讲述一下简单H5 canvas 渐变色块的绘制,希望给有需要的读者一定的启发,day day up together。

① 首先我们需要了解的是canvas的绘图机制。canvas其实简单来讲就是一块画布,我们可以在里面添加图片,文字,线条甚至高级动画。概念蛮复杂但使用起来十分简便,我们使用<canvas></canvas>即可放置画布。我们可以通过修改开始标签中的参数来进行画布设置,如<canvas width="600" height="600"></canvas>即可在页面上放置一块600px×600px的区域为画布。

② 但现在它并没有颜色只是指定了大小。我们可以给它加上一个边框使之可见:<canvas id="test1" style="border:2px solid;" width="600" height="600"></canvas> 使用style为之增加一个边框,同时我们为之增加一个id特性,便于我们通过这个id来找到该canvas元素。请读者自行拷贝或手动输入代码执行观察结果。
当我们使用canvas时,需要加入此句表示对canvas的引用:
var canvas=document.getElementById(id);
var context=canvas.getContext(‘2d’);
使用canvas对象的getcontext方法获得图形上下文。

③ 我们来了解一下所需要的canvas绘图机制,fillRect,strokeRect,fillStyle和strokeStyle。
fillRect用于填充矩形,strokeRect用于绘制矩形边框。使用方法相同,
context.fillRect(x,y,width,height);
context.strokeRect(x,y,width,height);
fillStyle被我们用来设置填充颜色,而strokeStyle用于设置轮廓颜色。使用方法相同,
context.fillStyle(x,y,width,height);
context.strokeStyle(x,y,width,height);

④ 接下来我们开始渐变色块的绘制。我们使用600*600的canvas画布,颜色使用RGB,值用双层循环加数学公式来设定,context.fillStyle=’rgb(‘+Math.floor(255-42.5*i)+’,’+Math.floor(255-42.5*j)+’,0)’
每个色块大小设置为100px,6行6列,context.fillRect(j*100,i*100,100,100);。

具体实现代码如下:





渐变色绘制 · 代码

<body>
    <div id="test1" style="margin-left:20px; margin-top: 20px;width: 600px;height: 600px;background-color: whitesmoke;">
    <canvas id="change" width="600" height="600"></canvas>
</body>
        <script type="text/javascript">
        var canvas=document.getElementById("change");
        var context=canvas.getContext('2d');
        for(var i=0;i<6;i++){
            for(var j=0;j<6;j++){
                context.fillStyle='rgb('+Math.floor(255-42.5*i)+','+Math.floor(255-42.5*j)+',0)';
                context.fillRect(j*100,i*100,100,100);
        }
        }
    </script>

绘制出的图形即如下图:
这里写图片描述

主要思想是其中颜色变化的实现方法,利用循环加数学公式改变RGB值。
具体流程如上,读者可自行尝试。把上述几种绘图机制掌握好,可自行引申到其他的图形上去。

博主在吉林大学,是大四到公司实习的大学生,现在在东方国信公司做软件测试。
菜鸟一只,也在不断的学习阶段,平时的小经验不定期分享。
愿与同在优快云的你共同进步。 
有意可加QQ1255187803交流学习。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

綦枫Maple

感谢你的投喂鸭~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值