html5 之 canvas 相关知识(三)API-strokeStyle-shadow相关

strokeStyle定义和用法

strokeStyle 属性设置或返回用于笔触的颜色、渐变或模式。

context.strokeStyle=color|gradient|pattern;//指示绘图填充色的CSS颜色值|用于填充绘图的渐变对象线性或放射性|用于填充绘图的 pattern 对象

实例 1 绘制一个矩形。使用渐变笔触:

<canvas id="canvas" width=300 height=150></canvas>
<script>
var c=document.getElementById("canvas");
var ctx=c.getContext("2d");
var gradient=ctx.createLinearGradient(100,0,200,0);
gradient.addColorStop("0","magenta");
gradient.addColorStop("0.5","blue");
gradient.addColorStop("1.0","red");
// 用渐变进行填充
ctx.strokeStyle=gradient;
ctx.lineWidth=10;
ctx.strokeRect(100,25,100,100);
</script>

定义的矩形尺寸100*100,边框宽度为10,实际画出的尺寸是110*110,即总宽= 宽度+边框宽,而非平常盒模型理解的  总宽= 宽度+边框宽*2

实例 2 用一个渐变笔触来写文本 "canvas example"

<canvas id="canvas" width=300 height=150></canvas>
<script>
    var c=document.getElementById("canvas");
    var ctx=c.getContext("2d");
    ctx.font="30px arial";
    var gradient=ctx.createLinearGradient(0,0,c.width,0);
    gradient.addColorStop("0","magenta");
    gradient.addColorStop("0.5","blue");
    gradient.addColorStop("1.0","red");
    // 用渐变进行填充
    ctx.strokeStyle=gradient;
    ctx.strokeText("canvas example",40,80);
</script>

shadowColor、shadowBlur 、shadowOffsetX 、shadowOffsetY

设置阴影的颜色、模糊级别、水平及垂直距离。

context.shadowColor=color;context.shadowBlur=number;context.shadowOffsetX=number;context.shadowOffsetY=number;

实例 1 绘制一个红色矩形红色阴影,模糊级别30

<canvas id="canvas" width=300 height=150></canvas>
<script>
    var myCanvas = document.getElementById("canvas");
    var cc = myCanvas.getContext("2d");
    cc.fillStyle = "#ff0000";
    cc.shadowBlur=30;
    cc.shadowColor="#ff0000";
    cc.fillRect(100,25,100,100);//四个参数分别对应:x,y,w,h
</script>

在没有定义X\Y的阴影偏移时,四边正向放射

在原来 基础上设置X Y 阴影偏移

<canvas id="canvas" width=300 height=150></canvas>
<script>
    var myCanvas = document.getElementById("canvas");
    var cc = myCanvas.getContext("2d");
    cc.fillStyle = "#ff0000";
    cc.shadowBlur=30;
    cc.shadowOffsetX=15;
    cc.shadowOffsetY=15;
    cc.shadowColor="#ff0000";
    cc.fillRect(100,25,100,100);//四个参数分别对应:x,y,w,h
</script>

shadowOffsetX=0 指示阴影位于形状的正下方。

shadowOffsetX=20 指示阴影位于形状 left 位置右侧的 20 像素处。

shadowOffsetX=-20 指示阴影位于形状 left 位置左侧的 20 像素处。

shadowOffsetY=0 指示阴影位于形状的正下方。

shadowOffsetY=20 指示阴影位于形状 top 位置下方的 20 像素处。

shadowOffsetY=-20 指示阴影位于形状 top 位置上方的 20 像素处。

 

时间: 2024-12-30 04:36:37

html5 之 canvas 相关知识(三)API-strokeStyle-shadow相关的相关文章

CSS相关知识三

CSS的transform.transition和animation属性 transform属性 (变形) 它是CSS用改变换样式的基础属性,你可以设置这个属性的不同的值,来使样式进行改变 这个属性是比较新的是,所以并不是所有的浏览器都能支持,IE8及之前的浏览器是不支持的. 因此还需要给所有浏览器提供厂商前缀 -webkit-transform: -moz-transform: -o-transform: -ms-transform: 记得注意的特性:这个属性不会对周围的元素产生影响. tra

Linux用户及权限相关知识

linux用户及相关知识 一.相关名词解释 每一个用户名都对应一个用户ID即UID,主机通过用户名解析成UID进行用户识别. 每一个用户组名都对应一个组ID即GID,主机通过用户组名解析成GID进行用户识别. 1.名称解析:将用户名和UID进行转换. 2.用户认证:验证该用户是否具有该权限登陆该主机. 3.用户授权:该用户是否有权限访问该文件. 4.审计:记录该用户在当前系统的行为. 5.认证机制 :linux默认的认证机制 shadow   影子口令 [[email protected]/]#

html5 之 canvas 相关知识(一)概念及定义

什么是 Canvas? HTML5 的 canvas 元素使用 JavaScript 在网页上绘制图像. 画布是一个矩形区域,您可以控制其每一像素. canvas 拥有多种绘制路径.矩形.圆形.字符以及添加图像的方法. <canvas> 标签只是图形容器,它没有自己的行为,需要定义API 支持脚本化客户端绘图操作. 创建 Canvas 元素 canvas的代码很简单,定义一个ID以及宽和高.这里强调一点:canvas的宽高必须写在元素上,如果用样式定义,不能改变其图片的比例 <canva

HTML5新增Canvas标签及对应属性、API详解(基础一)

知识说明: HTML5新增的canvas标签,通过创建画布,在画布上创建任何想要的形状,下面将canvas的API以及属性做一个整理,并且附上时钟的示例,便于后期复习学习!Fighting! 一.标签原型 <canvas width=”1000” height=”1000” id=”myCanvas”> 您的浏览器版本过低,不支持HTML5新增的canvas标签. </canvas> 使用js获取该画布,并指定对象 <script> Var canvasID = doc

HTML5程序设计 Canvas API

检测浏览器支持情况 <script type="text/javascript"> try { document.createElement("Canvas").getContext("2d"); document.getElementById("support").innerHTML = "OK"; } catch (e) { document.getElementById("sup

程序员面试笔试宝典学习记录(三)(数据库相关知识)

关系数据库系统与文件数据库系统的区别如下: (a)关系数据库系统的主要特征是数据的结构化,而文件数据库系统是数据的非结构化. (b)关系数据库系统中,用户看到的逻辑结构是二维表,而文件数据库系统中,基本元素是文件. (c)文件数据库系统可以实现多媒体文件管理,支持C/S工作模式. acid,指数据库事务正确执行的四个基本要素的缩写.包含:原子性(atomicity),一致性(consistency),隔离性(isolation),持久性(durability). 数据查询:select sele

Java复习第三天---集合框架的相关知识

集合框架总览: Collection 接口常用方法 //1.add()向集合中添加数据 c.add(apple01); c.add(apple02); c.add(apple03); c.add(apple04); c.add(apple05); //2.isEmepty()检测当前集合是否为空 boolean empty = c.isEmpty(); System.out.println("is empty:"+empty); //3.size()返回当前集合的长度 int size

python实现单例模式的三种方式及相关知识解释

python实现单例模式的三种方式及相关知识解释 模块模式 装饰器模式 父类重写new继承 单例模式作为最常用的设计模式,在面试中很可能遇到要求手写.从最近的学习python的经验而言,singleton实现的四种方法都是python的重要特征,反过来也刚好是几种特征的最佳实现.(比如你平常开发中很难遇到几个需要写元类的地方)如果不能随手写出某种实现,说明你对于那种实现的概念还没有完全掌握.最近场通过写装饰器模式的singleton来复习装饰器概念. 1. module实现 #模块实现 from

【转载】前端面试“http全过程”将所有HTTP相关知识抛出来了...

原文:前端面试“http全过程”将所有HTTP相关知识抛出来了... 来一篇串通,一个http全过程的问题,把所有HTTP相关知识点都带过一遍 http全过程 输入域名(url)-->DNS映射为IP-->TCP三次握手-->HTTP请求-->HTTP响应-->(浏览器跟踪重定向地址)-->服务器处理请求-->服务器返回一个html响应-->(视情况决定释放TCP连接)-->客户端解析HTML-->获取嵌入在HTML中的对象重新发起http请求