• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com专业计算机教程网站
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • html/xhtml
  • html5
  • CSS
  • XML/XSLT
  • Dreamweaver教程
  • Frontpage教程
  • 心得技巧
  • bootstrap
  • vue
  • AngularJS
  • HBuilder教程
  • css3
  • 浏览器兼容
  • div/css
  • 网页编辑器
  • axure
您的位置:首页 > 网页设计 >html5 > 详解HTML5 Canvas绘制时指定颜色与透明度的方法

详解HTML5 Canvas绘制时指定颜色与透明度的方法

作者:xishui 字体:[增加 减小] 来源:互联网 时间:2017-08-06

本文主要包含HTML5,Canvas,颜色,透明度等相关知识,xishui 希望在学习及工作中可以帮助到您

指定颜色

黑色是Canvas绘制的默认色彩,要想换一种颜色的话,就得在实际画之前指定颜色。

  1. ctx.strokeStyle = color   

指定绘制线的颜色:

  1. ctx.fillStyle = color   

指定填充的颜色:
来看看实际的例子:

JavaScript

  1. onload = function() {   
  2.   draw();   
  3. };   
  4. function draw() {   
  5.   var canvas = document.getElementById('c1');   
  6.   if ( ! canvas || ! canvas.getContext ) { return false; }   
  7.   var ctx = canvas.getContext('2d');   
  8.   ctx.beginPath();   
  9.   ctx.fillStyle = 'rgb(192, 80, 77)'; // 红   
  10.   ctx.arc(70, 45, 35, 0, Math.PI*2, false);   
  11.   ctx.fill();   
  12.   ctx.beginPath();   
  13.   ctx.fillStyle = 'rgb(155, 187, 89)'; // 绿   
  14.   ctx.arc(45, 95, 35, 0, Math.PI*2, false);   
  15.   ctx.fill();   
  16.   ctx.beginPath();   
  17.   ctx.fillStyle = 'rgb(128, 100, 162)'; // 紫   
  18.   ctx.arc(95, 95, 35, 0, Math.PI*2, false);   
  19.   ctx.fill();   
  20. }  

效果如下图:
2016325112217008.png (142×142)

指定透明度

和普通的CSS中一样,我们指定颜色的时候还可以带一个alpha值(不过用的不多,IE9之前都不支持)。看代码:

JavaScript

  1. onload = function() {   
  2.   draw();   
  3. };   
  4. function draw() {   
  5.   var canvas = document.getElementById('c1');   
  6.   if ( ! canvas || ! canvas.getContext ) { return false; }   
  7.   var ctx = canvas.getContext('2d');   
  8.   ctx.beginPath();   
  9.   ctx.fillStyle = 'rgba(192, 80, 77, 0.7)'; //   
  10.   ctx.arc(70, 45, 35, 0, Math.PI*2, false);   
  11.   ctx.fill();   
  12.   ctx.beginPath();   
  13.   ctx.fillStyle = 'rgba(155, 187, 89, 0.7)'; //   
  14.   ctx.arc(45, 95, 35, 0, Math.PI*2, false);   
  15.   ctx.fill();   
  16.   ctx.beginPath();   
  17.   ctx.fillStyle = 'rgba(128, 100, 162, 0.7)'; //   
  18.   ctx.arc(95, 95, 35, 0, Math.PI*2, false);   
  19.   ctx.fill();   
  20. }   

结果就是下面这样:
2016325112248089.png (142×142)

和上面的代码基本没变化,就是把rgb(r, g, b)变成了rgba(r, g, b, a)而已,a的值也是0~1,0表示完全透明,1则是完全不透明(所以alpha的值实际上是“不透明度”)。


全局透明globalAlpha
这个也是很简单的一个属性,默认值为1.0,代表完全不透明,取值范围是0.0(完全透明)~1.0。这个属性与阴影设置是一样的,如果不想针对全局设置不透明度,就得在下次绘制前重置globalAlpha。

总结一下:基于状态的属性有哪些?

——globalAlpha

——globalCompositeOpeartion

——strokeStyle

——textAlign,textBaseline

——lineCap,lineJoin,lineWidth,miterLimit

——fillStyle

——font

—&m

您可能想查找下面的文章:

  • HTML5知识点总结
  • HTML5的本地存储
  • HTML5本地存储之IndexedDB
  • Html5实现文件异步上传功能
  • Html5新标签datalist实现输入框与后台数据库数据的动态匹配
  • 详解HTML5 window.postMessage与跨域
  • HTML5拖放API实现拖放排序的实例代码
  • 解决html5中video标签无法播放mp4问题的办法
  • HTML5新特性 多线程(Worker SharedWorker)
  • Html5新增标签有哪些

相关文章

  • 2018-12-03H5的本地存储之IndexedDB
  • 2018-12-03HTML5 Canvas实战之刮奖效果的实例详情
  • 2018-12-03有人说基于成熟后的HTML5 移动web应用才是未来,因为省去了app移动应用在不同终端的开发时间。基于终端的移动应用也会走下舞台,各位怎么认为?
  • 2018-12-03html5 学习简单的拾色器 _html5教程技巧
  • 2017-08-06浅谈three.js中的needsUpdate的应用
  • 2017-08-06html5 Canvas画图教程(9)—canvas中画出矩形和圆形
  • 2018-12-03 html5+JavaScript进行邮箱地址验证
  • 2018-12-03H5与C3的新交互特性有哪些
  • 2018-12-03Html5实现二维码扫描并解析 _html5教程技巧
  • 2018-12-03在H5页面中怎样调用APP

文章分类

  • html/xhtml
  • html5
  • CSS
  • XML/XSLT
  • Dreamweaver教程
  • Frontpage教程
  • 心得技巧
  • bootstrap
  • vue
  • AngularJS
  • HBuilder教程
  • css3
  • 浏览器兼容
  • div/css
  • 网页编辑器
  • axure

最近更新的内容

    • HTML5到底会有什么发展?HTML5的前景展望_html5教程技巧
    • HTML5中如何使用rel属性的预加载功能?
    • HTML5 是一门编程语言吗?
    • HTML5高级编程之像素处理及粒子效果
    • HTML5 本地存储和内容按需加载的思路和方法_html5教程技巧
    • SVG基础|SVG DEFS元素、SYMBOL元素和USE元素
    • canvas像素点操作之视频绿幕抠图
    • HTML5拖放(Drag 和 drop)实例讲解
    • Node.js爬取豆瓣数据实例
    • 基于html5绘制圆形多角图案

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有