《HTML5 Canvas开发详解》——2.10 创建阴影

简介:

本节书摘来自异步社区《HTML5 Canvas开发详解》一书中的第2章,第2.10节,作者: 【美】Steve Fulton , Jeff Fulton 更多章节内容可以访问云栖社区“异步社区”公众号查看。

2.10 创建阴影

读者可以使用4个参数给画布上的形状添加阴影。和2.9节所讲的填充图案一样,这项功能还没有被所有兼容HTML5的浏览器完全支持。

可以通过设置如下4个Canvas参数来添加阴影。

  • shadowOffsetX。
  • shadowOffsetY。
  • shadowBlur。
  • shadowColor。

shadowOffsetX和shadowOffsetY值可以为正值或负值,负值将会在左侧和上方创建阴影,反之将会是底部和右侧创建阴影。shadowBlur属性用来设置阴影模糊效果的程度。这三个参数都不受当前Canvas变换矩阵影响。shadowColor可以是任何HTML4颜色的常量字符串——rgb()或rgba()——或者是十六进制数值字符串。

例2-27和图2-39显示几个不同阴影效果的方块。


<a href=https://yqfile.alicdn.com/522fd023f89cf2ac0980a611489e777d9d287671.png" >
2-27 给对象添加阴影

function drawScreen(){

   context.fillStyle = 'red';

   context.shadowOffsetX = 4;
   context.shadowOffsetY = 4;
   context.shadowColor = 'black';
   context.shadowBlur = 4;
   context.fillRect(10,10,100,100);

   context.shadowOffsetX = -4;
   context.shadowOffsetY = -4;
   context.shadowColor = 'black';
   context.shadowBlur = 4;
   context.fillRect(150,10,100,100);

   context.shadowOffsetX = 10;
   context.shadowOffsetY = 10;
   context.shadowColor = 'rgb(100,100,100)';
   context.shadowBlur = 8;
   context.arc(200, 300, 100, (Math.PI/180)*0, (Math.PI/180)*360, false)
   context.fill();
}
AI 代码解读

如图2-39所示,如果同时调整shadowOffset和shadowBlur值可以创建不同的阴影。当然Canvas还可以为由路径和弧形组成的复杂形状创建阴影。

相关文章
基于HTML5+Canvas绘制的鼠标跟随三角形碎片光标动画代码
基于HTML5+Canvas绘制的鼠标跟随三角形碎片光标动画特效代码,很有意思,一团三角形碎片跟随鼠标的移动,不冗长、不笨重,反而有一种很轻盈的感觉,非常不错
73 29
Html5 Canvas绘制圆形仪表盘动画源码
Html5 Canvas绘制圆形仪表盘动画特效是一款基于HTML5 Canvas绘制的圆形百分比仪表盘动画特效。
29 1
html5 canvas五彩碎纸屑飘落动画特效
h5 canvas飘落纸片动画是一款实现五彩纸屑飘落的背景动画特效,基于canvas绘制的空中飘落的纸屑片动画特效,适用于网页动态背景效果代码。简单使用,欢迎下载!代码适用浏览器:搜狗、360、FireFox(建议)、Chrome、Safari、Opera、傲游、世界之窗,是一款不错的的特效插件,希望大家喜欢!
75 5
基于 HTML5 和 Canvas 开发的在线图片编辑器
基于 HTML5 和 Canvas 开发的在线图片编辑器
169 0
基于canvas实现的彩色纸屑组成文字3d动画HTML源码
基于canvas实现的彩色纸屑组成文字3d动画HTML源码
52 0
基于canvas实现的彩色纸屑组成文字3d动画HTML源码
HTML5 Canvas制作的粒子十秒倒计时源码
一段基于HTML5 Canvas制作的粒子爆炸,十秒数字倒计时,全屏倒计时动画效果,给人一种非常大气的视觉感
69 0
HTML5 Canvas制作的粒子十秒倒计时源码
Canvas三维变化背景动画HTML源码
Canvas三维变化背景动画HTML源码
55 5
HTML5 SVG和canvas的性能探讨
HTML5 中的 SVG(可缩放矢量图形)和 Canvas(画布)分别用于网页图形绘制。SVG 基于矢量图形,使用 XML 描述,适合静态或少量动态内容(如图标、图表),易于编辑且保持高分辨率;Canvas 则基于位图,通过 JavaScript 绘制,更适合快速更新大量图形的场景(如游戏、动态动画),但在复杂图形计算时可能遇到性能瓶颈。总体而言,SVG 适用于静态和少量动态内容,而 Canvas 更适合高频率更新和性能要求高的场景。
HTML5 Canvas详解及应用
HTML5 Canvas 允许通过 JavaScript 在网页上动态绘制图形、动画等视觉内容。首先在 HTML 中定义 `&lt;canvas&gt;` 元素,并通过 JavaScript 获取画布上下文进行绘制。常见方法包括绘制矩形、路径、圆形和文本,以及处理图像和创建动画效果。适用于游戏开发、数据可视化、图像编辑和动态图形展示等多种应用场景。需要注意性能优化、无状态绘制及自行处理事件等问题。
用HTML5中的 画布(Canvas)在“圳品”信息系统网页上绘制显示饼图
用HTML5中的 画布(Canvas)在“圳品”信息系统网页上绘制显示饼图