HTML5的Canvas自带API可以显示阴影效果,主要还是在画布(canvas)的上下文对象(context)上做文章

  1. <!DOCTYPE html>
  2. <head>
  3. <meta charset="UTF-8">
  4. <title>HTML5 Combine Shape DEMO</title>
  5. <script type="text/javascript" src="js/drawShadow.js"></script>
  6. </head>
  7. <body onload="draw('canvas')"></body>
  8. <h2>canvas:显示阴影效果</h2>
  9. <!-- 指定一个canvas元素用于显示结果 -->
  10. <canvas id="canvas" width="400” height="400"/>
  11. <br><br>

画带阴影效果的图形见如下的js代码:

  1. /**
  2. *  This file is confidential by Charles.Wang
  3. *  Copyright belongs to Charles.wang
  4. *  You can make contact with Charles.Wang (charles_wang888@126.com)
  5. */
  6. function draw (id){
  7. //取得画布对象
  8. var canvas = document.getElementById(id);
  9. if(canvas ==null)
  10. return false;
  11. //取得上下文
  12. var context = canvas.getContext('2d');
  13. //绘制底图
  14. context.fillStyle='#FFEEFF';
  15. context.fillRect(0,0,400,400);
  16. //以下4个属性是阴影的设置属性,用他们可以用来画阴影效果
  17. //shadowOffSetX是横向位移量,所以这里设置为10表明阴影会出现在原图形右边,最多10像素
  18. context.shadowOffSetX=10;
  19. //shadowOffSetX是纵向位移量,所以这里设置为10表明阴影会出现在原图形下边,最多10像素
  20. context.shadowOffsetY=10;
  21. //阴影的颜色
  22. context.shadowColor="rgba(50,50,100,0.5)";
  23. //阴影的模糊范围
  24. context.shadowBlur=7.5;
  25. //所以到这里为止,我们吧上下文关联上了阴影效果,所有用这个context绘制的图形都会有(+10,+10)的阴影效果
  26. //绘制五角星
  27. context.translate(50,50);
  28. create5star(context);
  29. context.fill();
  30. }
  31. function create5star(context){
  32. var n = 0;
  33. var dx=100;
  34. var dy=0;
  35. var s = 50;
  36. //创建路径
  37. context.beginPath();
  38. context.fillStyle='rgba(255,0,0,0.5)';
  39. var x = Math.sin(0);
  40. var y=Math.cos(0);
  41. var dig = Math.PI/5*4;
  42. //画5条边
  43. for(var i =0;i<5;i++){
  44. var x = Math.sin(i * dig);
  45. var y = Math.cos(i* dig);
  46. context.lineTo(dx+x*s,dy+y*s);
  47. }
  48. context.closePath();
  49. }

最终展示效果如图:

转载于:https://blog.51cto.com/supercharles888/854126

HTML5 利用canvas API 展示阴影效果相关推荐

  1. 在html利用canvas蚂蚁,html5 利用canvas实现简单的人物走动

    最近在学习html5,其中涉及到很关键的元素canvas-画布,在网上下载了一些游戏源代码,虽然能看懂,但是想单独地针对某个功能提取出来还是有难处的,于是乎自己又上网查找了一些例子,才将超级玛丽简单的 ...

  2. html5 自动扣图,html5利用canvas实现颜色容差抠图功能

    利用canvas的getImageData,我们可以获取到一张图片每一个像素的信息,而通过对每一个像素信息的对比,我们就可以找到需要消去的像素点.比如下面这一张图片,如果我们想要扣去白色部分(粉色是b ...

  3. php图片素描化,html5利用canvas实现图片转素描效果

    本章给大家介绍html5如何利用canvas实现图片转素描效果.有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所帮助. 素描滤镜原理: 最基础的算法就是: 1.去色:(去色公式:gray = ...

  4. 如何用手机HTML制作哆啦a梦,HTML5利用canvas绘制哆啦A梦头部-电脑自学网

    html5的canvas是很强大的,下面本篇文章使用html5 canvas 实现一个简单的哆啦A梦头部.有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助. 效果如下: 代码如下: 您的 ...

  5. HTML5(五)——Canvas API

    什么是 Canvas API? Canvas API(画布)提供了一个通过 javascript 和 html 的 canvas 元素来在网页上实时绘制图形的方式.可用于动画.游戏.图标.图片编辑等多 ...

  6. javascript 和HTML5 利用canvas构建 猜牌游戏(让我猜猜你心中的牌)【图文说明】...

    让我猜猜你心中的牌,先随机生成27张牌,不能重复 列出三列牌,然后记住其中一张,然后点击牌所在的列,多次就可以猜出你想的牌. 如果是9张只要猜2次,如果是27张就是猜3次. 实现方法(27张): 如果 ...

  7. html5 判断获取定位,HTML5利用Geolocation API获取地理位置定位功能

    如何使用html5地理位置定位功能 定位功能(Geolocation)是HTML5的新特性,因此只有在支持HTML5的现代浏览器上运行,特别是手持设备如iphone,地理定位更加精确.首先我们要检测用 ...

  8. 如何用php制作超级玛丽,html5 利用canvas实现超级玛丽简单动画

    最近在学习html5,其中涉及到很关键的元素canvas-画布,在网上下载了一些游戏源代码,虽然能看懂,但是想单独地针对某个功能提取出来还是有难处的,于是乎自己又上网查找了一些例子,才将超级玛丽简单的 ...

  9. HTML5利用Canvas绘制图形(绘制渐变、模式、变换)

    绘制渐变 渐变是一种很普遍的视觉形象,能带来视觉上的舒适感.在Canvas中,绘图API提供了两个原生的渐变方法,包括线性渐变和径向渐变.渐变,在颜色集上使用逐步抽样的算法,可以应用的描边样式和填充样 ...

最新文章

  1. 【职场】是什么让女性在计算机史上“隐身”了?
  2. ImportError: No module named 'keras.utils.visualize_util'
  3. 微软官方宣布:Edge 浏览器将采用 Chromium 内核
  4. java 交替_Java 8:使用交替接口公开的类型安全地图生成器
  5. 2018.9.19.Matlab实验四:Matlab程序设计
  6. 在DataGrid页眉上添加全选的CheckBox控件
  7. CMU 15-213 Introduction to Computer Systems学习笔记(12) Linking
  8. 常见数学建模方法学习总结及资料汇总
  9. 小管家进销存_36氪首发 | 进销存SaaS提供商 「来肯云商」 获数百万美金A轮融资,要做“ERP+微商城 ”的一体化产品...
  10. AD参数微分非线性(DNL)与积分非线性(INL)
  11. Vue3报错:Extraneous non-props attributes (style) were passed to component but could not be automatical
  12. Internet随笔
  13. MP3歌词的同步与拖拽设计
  14. 编写js找到一个字符串中指定子字符串的所有位置
  15. 在不停业务的情况下重启ES集群中的节点
  16. WINFORM控件开发 来源:博客园 作者:纶巾客
  17. mysql动态规划_关于动态规划的描述,不正确的是( )
  18. 知物由学 | 虚假色情泛滥,人工智能可以做些啥?
  19. JSP+Servlet使用commons-fileupload上传文件连接被重置解决方案
  20. Android5.0-10.0各版本行为变更

热门文章

  1. excel合并多个工作表_如何快速的合并多个 Excel 工作簿至一个工作簿中的工作表?...
  2. Powerup tinyos接口实现
  3. ios开发Base64编码以及加密相关学习
  4. Oracle 11gR1中细粒度拜候搜集效劳(2)
  5. Keil : Cannot enter Debug Mode解决方法:
  6. PHP shell_exec()与exec()
  7. Android更改浮动操作按钮颜色
  8. 如何获取Node.js目录中存在的所有文件的名称列表?
  9. 使用批处理创建文件夹,但前提是它尚不存在
  10. 错误:请求“ ..”中的成员“ ..”属于非类类型