这篇文章主要介绍了使用HTML5 Canvas绘制阴影效果的方法,包括一个3D拉影 边缘模糊效果文字的编写例子,在阴影效果的利用上进一步深入,需要的朋友可以参考下

创建阴影效果需要操作以下4个属性:

1.context.shadowColor:阴影颜色。

2.context.shadowOffsetX:阴影x轴位移。正值向右,负值向左。

3.context.shadowOffsetY:阴影y轴位移。正值向下,负值向上。

4.context.shadowBlur:阴影模糊滤镜。数据越大,扩散程度越大。

这四个属性只要设置了第一个和剩下三个中的任意一个就有阴影效果。不过通常情况下,四个属性都要设置。

例如,创建一个向右下方位移各5px的红色阴影,模糊2px,可以这样写。context.shadowColor = "red";

context.shadowOffsetX = 5;

context.shadowOffsetY = 5;

context.shadowBlur= 2;

需要注意的是,这里的阴影同其他属性设置一样,都是基于状态的设置。因此,如果只想为某一个对象应用阴影而不是全局阴影,需要在下次绘制前重置阴影的这四个属性。

运行结果:

阴影文字:

只要设置shadowOffsetX与shadowOffsetY的值,当值都正数时,阴影相对文字的右下

方偏移。当值都为负数时,阴影相对文字的左上方偏移。

3D拉影效果:

在同一位置不断的重复绘制文字同时改变shadowOffsetX、shadowOffsetY、shadowBlur

的值,从小到大不断偏移不断增加,透明度也不断增加。就得到了拉影效果文字。

边缘模糊效果文字:

在3D拉影效果的基础上在四个方向重复,就得到了边缘羽化的文字效果。

运行效果:

程序代码:

Canvas Clip Demo

var ctx = null; // global variable 2d context

var imageTexture = null;

window.onload = function() {

var canvas = document.getElementById("text_canvas");

console.log(canvas.parentNode.clientWidth);

canvas.width = canvas.parentNode.clientWidth;

canvas.height = canvas.parentNode.clientHeight;

if (!canvas.getContext) {

console.log("Canvas not supported. Please install a HTML5 compatible browser.");

return;

}

var context = canvas.getContext('2d');

// section one - shadow and blur

context.fillStyle="black";

context.fillRect(0, 0, canvas.width, canvas.height/4);

context.font = '60pt Calibri';

context.shadowColor = "white";

context.shadowOffsetX = 0;

context.shadowOffsetY = 0;

context.shadowBlur = 20;

context.fillText("Blur Canvas", 40, 80);

context.strokeStyle = "RGBA(0, 255, 0, 1)";

context.lineWidth = 2;

context.strokeText("Blur Canvas", 40, 80);

// section two - shadow font

var hh = canvas.height/4;

context.fillStyle="white";

context.fillRect(0, hh, canvas.width, canvas.height/4);

context.font = '60pt Calibri';

context.shadowColor = "RGBA(127,127,127,1)";

context.shadowOffsetX = 3;

context.shadowOffsetY = 3;

context.shadowBlur = 0;

context.fillStyle = "RGBA(0, 0, 0, 0.8)";

context.fillText("Blur Canvas", 40, 80 hh);

// section three - down shadow effect

var hh = canvas.height/4 hh;

context.fillStyle="black";

context.fillRect(0, hh, canvas.width, canvas.height/4);

for(var i = 0; i < 10; i )

{

context.shadowColor = "RGBA(255, 255, 255," ((10-i)/10) ")";

context.shadowOffsetX = i*2;

context.shadowOffsetY = i*2;

context.shadowBlur = i*2;

context.fillStyle = "RGBA(127, 127, 127, 1)";

context.fillText("Blur Canvas", 40, 80 hh);

}

// section four - fade effect

var hh = canvas.height/4 hh;

context.fillStyle="green";

context.fillRect(0, hh, canvas.width, canvas.height/4);

for(var i = 0; i < 10; i )

{

context.shadowColor = "RGBA(255, 255, 255," ((10-i)/10) ")";

context.shadowOffsetX = 0;

context.shadowOffsetY = -i*2;

context.shadowBlur = i*2;

context.fillStyle = "RGBA(127, 127, 127, 1)";

context.fillText("Blur Canvas", 40, 80 hh);

}

for(var i = 0; i < 10; i )

{

context.shadowColor = "RGBA(255, 255, 255," ((10-i)/10) ")";

context.shadowOffsetX = 0;

context.shadowOffsetY = i*2;

context.shadowBlur = i*2;

context.fillStyle = "RGBA(127, 127, 127, 1)";

context.fillText("Blur Canvas", 40, 80 hh);

}

for(var i = 0; i < 10; i )

{

context.shadowColor = "RGBA(255, 255, 255," ((10-i)/10) ")";

context.shadowOffsetX = i*2;

context.shadowOffsetY = 0;

context.shadowBlur = i*2;

context.fillStyle = "RGBA(127, 127, 127, 1)";

context.fillText("Blur Canvas", 40, 80 hh);

}

for(var i = 0; i < 10; i )

{

context.shadowColor = "RGBA(255, 255, 255," ((10-i)/10) ")";

context.shadowOffsetX = -i*2;

context.shadowOffsetY = 0;

context.shadowBlur = i*2;

context.fillStyle = "RGBA(127, 127, 127, 1)";

context.fillText("Blur Canvas", 40, 80 hh);

}

}

HTML5 Canvas Clip Demo - By Gloomy Fish

Fill And Stroke Clip

以上就是本文的全部内容,希望对大家的学习有所帮助,更多相关内容请关注jquery中文网!

相关推荐:

html5 touch事件实现触屏页面上下滑动

在HTML5 Canvas中放入图片和保存为图片的方法

html5和js绘制图片到canvas的方法

用html制作阴影效果,使用HTML5 Canvas绘制阴影效果的方法相关推荐

  1. 用html5做一条线,使用HTML5 canvas绘制线条的方法

    使用HTML5 canvas绘制线条的方法 发布时间:2020-08-29 11:24:23 来源:亿速云 阅读:96 作者:小新 这篇文章主要介绍了使用HTML5 canvas绘制线条的方法,具有一 ...

  2. 用html制作双色球代码,Html5 canvas 绘制彩票走势图

    因需要 要实现一个类似彩票走势图的功能,初次学Html5 ,很多地方不明白,前段时间也发帖请教过这个问题,也是没给个明确说话,在网上搜了很多,也没有实现的例子,今天仔细研究了下,发现其实也不是很难,现 ...

  3. html5绘制随机五角星_HTML5 canvas绘制五角星的方法

    这篇文章主要介绍了关于HTML5 canvas绘制五角星的方法,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 是HTML5中新增的标签,用于绘制图形,这篇文章主要为大家详细介绍了HTM ...

  4. HTML5 canvas绘制雪花飘落动画(需求分析、知识点、程序编写分布详解)

    HTML5 canvas绘制雪花飘落动画(需求分析.知识点.程序编写分布详解) 原文:HTML5 canvas绘制雪花飘落动画(需求分析.知识点.程序编写分布详解) 看到网上很多展示html5雪花飞动 ...

  5. java canvas 画图片_[Java教程][HTML5] Canvas绘制简单图片

    [Java教程][HTML5] Canvas绘制简单图片 0 2016-05-13 13:00:04 获取Image对象,new出来 定义Image对象的src属性,参数:图片路径 定义Image对象 ...

  6. html5 canvas绘制圆形进度实例

    2019独角兽企业重金招聘Python工程师标准>>> html5 canvas绘制圆形进度实例 <canvas id="test" width=200 h ...

  7. html 画动画效果,html5 canvas绘制曲线动画特效

    特效描述:html5 canvas绘制 曲线动画特效. 代码结构 1. HTML代码 Balls Size Speed Delay Go! Presets: Atomic Flower Spiro Y ...

  8. html5时间画布走动,javascript+HTML5 canvas绘制时钟功能示例

    本文实例讲述了javascript+HTML5 canvas绘制时钟功能.分享给大家供大家参考,具体如下: 效果如下: 代码: www.jb51.net canvas绘制时钟 div{text-ali ...

  9. 使用 HTML5 Canvas 绘制出惊艳的水滴效果

    HTML5 在不久前正式成为推荐标准,标志着全新的 Web 时代已经来临.在众多 HTML5 特性中,Canvas 元素用于在网页上绘制图形,该元素标签强大之处在于可以直接在 HTML 上进行图形操作 ...

最新文章

  1. 用gdb调试mpi程序的一些心得
  2. leangoo领歌scrum工具任务到期提醒支持通知到飞书
  3. Git的工作流程简介
  4. 信号与系统 chapter4 单位脉冲与单位阶跃序列
  5. 关于tensorflow的碎片
  6. Jmeter工具使用-分布式架构和服务器性能监控解决方案
  7. 1.4 循环语句 方法
  8. 基于分布式光纤传感的高压电力线路异常监测探讨
  9. opencv3错误集锦(四)——Rect函数参数引发的异常中断
  10. 【javascript】字符串逆序输出
  11. N70常用软件大集合
  12. python宿舍管理系统!
  13. axios java基本使用
  14. python写的2048游戏,源代码,pygame
  15. overleaf模板导入后中文无法识别问题解决方案
  16. mysql中查询没有选修某两门课的_50条SQL查询技巧、查询语句示例
  17. pg 百万数据表 添加序号 20秒轻松搞定
  18. 机械硬盘显示容量0字节要如何办啊
  19. 【智利支付】智利外贸收款方式Servipag
  20. <script>标签通过src属性调用js文件

热门文章

  1. 大地坐标系(WGS84)转空间直角坐标系(笛卡尔坐标系XYZ)
  2. Velodyne-16c激光雷达数据包解析与坐标计算方法
  3. 案例+图解带你一文读懂SVG
  4. 大鹏半岛海边团建烧烤野炊上岛赶海一日游全攻略
  5. Java实际项目运用之策略模式
  6. NLP-预训练模型-2019-NLU+NLG:T5【Text-to-Text 预训练模型超大规模探索】【 微调T5用于文本摘要】
  7. optee中使用虚函数(平台客制化)的设计模型
  8. 企业外贸海外邮箱服务哪个好?企业邮箱前缀可以定制吗?
  9. 零售业数据分析应用的四种方式
  10. 自己造一个简易的IOC轮子