HTML5 canvas基本绘图之填充样式实现


Posted in HTML / CSS onJune 27, 2016

<canvas></canvas>是HTML5中新增的标签,用于绘制图形,实际上,这个标签和其他的标签一样,其特殊之处在于该标签可以获取一个CanvasRenderingContext2D对象,我们可以通过JavaScript脚本来控制该对象进行绘图。

<canvas></canvas>只是一个绘制图形的容器,除了id、class、style等属性外,还有height和width属性。在<canvas>>元素上绘图主要有三步:

1.获取<canvas>元素对应的DOM对象,这是一个Canvas对象;
2.调用Canvas对象的getContext()方法,得到一个CanvasRenderingContext2D对象;
3.调用CanvasRenderingContext2D对象进行绘图。

填充样式

前面用到的fillStyle和strokeStyle除了设置颜色外,还能设置其他填充样式,这里以fillStyle为例:

 •线性渐变

使用步骤
(1)var grd = context.createLinearGradient( xstart , ystart, xend , yend )创建一个线性渐变,设置起始坐标和终点坐标;
(2)grd.addColorStop( stop , color )为线性渐变添加颜色,stop为0~1的值;
(3)context.fillStyle=grd将赋值给context。

 •径向渐变
该方法与线性渐变使用方法类似,只是第一步接收的参数不一样
var grd = context.createRadialGradient(x0 , y0, r0 , x1 , y1 , r1 );接收起始圆心的坐标和圆半径以及终点圆心的坐标和圆的半径。

 •位图填充
createPattern( img , repeat-style )使用图片填充,repeat-style可以取repeat、repeat-x、repeat-y、no-repeat。 

JavaScript Code复制内容到剪贴板
  1. var canvas = document.getElementById("canvas");   
  2.     var context = canvas.getContext("2d");   
  3.   
  4.     //线性渐变   
  5.     var grd = context.createLinearGradient( 10 , 10, 100 , 350 );   
  6.     grd.addColorStop(0,"#1EF9F7");   
  7.     grd.addColorStop(0.25,"#FC0F31");   
  8.     grd.addColorStop(0.5,"#ECF811");   
  9.     grd.addColorStop(0.75,"#2F0AF1");   
  10.     grd.addColorStop(1,"#160303");   
  11.     context.fillStyle = grd;   
  12.     context.fillRect(10,10,100,350);   
  13.   
  14.     //径向渐变   
  15.     var grd = context.createRadialGradient(325 , 200, 0 , 325 , 200 , 200 );   
  16.     grd.addColorStop(0,"#1EF9F7");   
  17.     grd.addColorStop(0.25,"#FC0F31");   
  18.     grd.addColorStop(0.5,"#ECF811");   
  19.     grd.addColorStop(0.75,"#2F0AF1");   
  20.     grd.addColorStop(1,"#160303");   
  21.     context.fillStyle = grd;   
  22.     context.fillRect(150,10,350,350);   
  23.   
  24.     //位图填充   
  25.     var bgimg = new Image();   
  26.     bgimg.src = "background.jpg";   
  27.     bgimg.onload=function(){   
  28.         var pattern = context.createPattern(bgimg, "repeat");   
  29.         context.fillStyle = pattern;   
  30.         context.strokeStyle="#F20B0B";   
  31.         context.fillRect(600, 100, 200,200);   
  32.         context.strokeRect(600, 100, 200,200);   
  33.     };   
  34.   

效果如下:

HTML5 canvas基本绘图之填充样式实现

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

HTML / CSS 相关文章推荐
CSS3教程(6):创建网站多列
Apr 02 HTML / CSS
css3中background新增的4个新的相关属性用法介绍
Sep 26 HTML / CSS
纯CSS3实现鼠标悬停提示气泡效果
Feb 28 HTML / CSS
css3的过滤效果简单实例
Aug 03 HTML / CSS
详解HTML5表单新增属性
Dec 21 HTML / CSS
html5 touch事件实现页面上下滑动效果【附代码】
Mar 10 HTML / CSS
HTML5 Canvas 破碎重组的视频特效的示例代码
Sep 24 HTML / CSS
HTML5 自动聚焦(autofocus)属性使用介绍
Aug 07 HTML / CSS
深入解析HTML5 Canvas控制图形矩阵变换的方法
Mar 24 HTML / CSS
canvas仿写贝塞尔曲线的示例代码
Dec 29 HTML / CSS
CSS实现多个元素在盒子内两端对齐效果
Mar 30 HTML / CSS
使用canvas仿Echarts实现金字塔图的实例代码
Nov 11 HTML / CSS
HTML5 canvas基本绘图之绘制线条
Jun 27 #HTML / CSS
HTML5 canvas基本绘图之绘制五角星
Jun 27 #HTML / CSS
浅析HTML5中header标签的用法
Jun 24 #HTML / CSS
HTML5中使用postMessage实现两个网页间传递数据
Jun 22 #HTML / CSS
基于HTML5 的人脸识别活体认证的实现方法
Jun 22 #HTML / CSS
调用HTML5的Canvas API绘制图形的快速入门指南
Jun 17 #HTML / CSS
html5 canvas绘制矩形和圆形的实例代码
Jun 16 #HTML / CSS
You might like
php中文本操作的类
2007/03/17 PHP
在任意字符集下正常显示网页的方法二(续)
2007/04/01 PHP
thinkphp 一个页面使用2次分页的实现方法
2013/07/15 PHP
js常用函数 不错
2006/09/08 Javascript
javascript中的float运算精度实例分析
2010/08/21 Javascript
20款超赞的jQuery插件 Web开发人员必备
2011/02/26 Javascript
基于jquery实现控制经纬度显示地图与卫星
2013/05/20 Javascript
浏览器图片选择预览、旋转、批量上传的JS代码实现
2013/12/04 Javascript
Javascript基础知识(三)BOM,DOM总结
2014/09/29 Javascript
如何用js 实现依赖注入的思想,后端框架思想搬到前端来
2015/08/03 Javascript
非常漂亮的相册集 使用jquery制作相册集
2016/04/28 Javascript
jQuery仿IOS弹出框插件
2017/02/18 Javascript
JavaScript中transform实现数字翻页效果
2017/03/08 Javascript
Node.js 中exports 和 module.exports 的区别
2017/03/14 Javascript
bootstrap轮播模板使用方法详解
2017/11/17 Javascript
使用Angular-CLI构建NPM包的方法
2018/09/07 Javascript
vue.js中使用echarts实现数据动态刷新功能
2019/04/16 Javascript
Python版实现微信公众号扫码登陆
2020/05/28 Javascript
vue项目中微信登录的实现操作
2020/09/08 Javascript
Python中的zip函数使用示例
2015/01/29 Python
Python中使用MELIAE分析程序内存占用实例
2015/02/18 Python
Python+Selenium自动化实现分页(pagination)处理
2017/03/31 Python
python3通过qq邮箱发送邮件以及附件
2020/05/20 Python
python获取linux系统信息的三种方法
2020/10/14 Python
Html5 APP中监听返回事件处理的方法示例
2018/03/15 HTML / CSS
使用HTML5做的导航条详细步骤
2020/10/19 HTML / CSS
加拿大花店:1800Flowers.ca
2016/11/16 全球购物
德国街头和运动文化高品质商店:BSTN Store
2017/08/26 全球购物
苹果Mac升级:MacSales.com
2017/11/20 全球购物
ProBikeKit德国:在线公路自行车专家
2018/06/03 全球购物
维德科技C#面试题笔试题
2015/12/09 面试题
法学专业本科生自荐信范文
2013/12/17 职场文书
妈妈的账单教学反思
2014/02/06 职场文书
财务简历的自我评价
2014/03/05 职场文书
2015年度酒店客房部工作总结
2015/05/25 职场文书
java调用Restful接口的三种方法
2021/08/23 Java/Android