down.addEventListener(“mouseover”,function () { // 设置鼠标移上按钮事件
t = setInterval(drawdown,100); // 设置一个定时器
},true);
down.addEventListener(“mouseout”,function () { // 设置鼠标移出按钮事件
t = clearInterval(t); // 清空定时器
},true);
function drawdown() {
cvs.fillStyle = “#00ff00”;
cvs.clearRect(x,y,20,20);
y += 5;
cvs.fillRect(x,y,20,20);
}
var left = document.getElementById(“left”);
left.addEventListener(“mouseover”,function () { // 设置鼠标移上按钮事件
t = setInterval(drawleft,100); // 设置一个定时器
},true);
left.addEventListener(“mouseout”,function () { // 设置鼠标移出按钮事件
t = clearInterval(t); // 清空定时器
},true);
function drawleft() {
cvs.fillStyle = “#00ff”;
cvs.clearRect(x,y,20,20);
x -= 5;
cvs.fillRect(x,y,20,20);
}
var right = document.getElementById(“right”);
right.addEventListener(“mouseover”,function () { // 设置鼠标移上按钮事件
t = setInterval(drawright,100); // 设置一个定时器
},true);
right.addEventListener(“mouseout”,function () { // 设置鼠标移出按钮事件
t = clearInterval(t); // 清空定时器
},true);
function drawright() {
cvs.fillStyle = “#00ffff”;
cvs.clearRect(x,y,20,20);
x += 5;
cvs.fillRect(x,y,20,20);
}
渐变
–
canvas 支持的渐变效果包括线性渐变和射线渐变。
canvas 渐变支持设置颜色的转折点。
语法
- createLinearGradient ( x1, y1, x2, y2 ) :创建线性渐变
- createRadialGradient ( x1, y1, r1, x2, y2, r2 ) :创建射线渐变
- createColorStop ( position,color ) :指定渐变颜色
渐变 - 线性渐变
案例代码:
渐变 - 径向渐变 (射线渐变)
案例代码
绘制文字
在画布上写文字非常简单,只需要定义一些属性和方法即可。
属性:
- font :与 css 和 font 的属性类似,接受值也完全相同。
- textAlign :文本对齐方式,值可以是 left、right 和 center。
- textBaseline:文本基线,值可以是 top(顶部对齐)、hanging(基线对齐)、middle(中部对其)、alphabetic(默认对其方式) 和 bottom(底部对齐)。
方法:
- strokeText(text,x,y):在位置(x,y)处绘制指定的文字轮廓。
- fillText(text,x,y ):与上一个方法相似,区别是该方法绘制的是实心的文字。
- measureText():返回指定文字大小信息。
案例代码
绘制阴影
阴影也是 canvas API 的重要组成部分。
每一条路径和文字都可以创建阴影效果。
API 提供了4个实现阴影的属性:
- shadowColor:阴影的颜色。
- shadowOffsetX:确定阴影的水平投射距离。
- shadowOffsetY:确定阴影的垂直投射距离。
- shadowBlur:模糊效果。
注: rgba(0,0,0,0.5) // 最后的0.5表示半透明,透明度为0.5。shadowBlur 为羽化程度即模糊度,值越高,羽化程度越高。
案例代码
Canvas 绘制路径
针对一些复杂图形的绘制,需要通过路径进行描绘。
路径是画笔移动的地图,路径建立后,将其发送给上下文,就可以绘制图形。
Canvas 绘制路径 - 常用方法
beginPath()
- 开始一个新的形状描。穿件路径前必须先调用该方法。
closePath()
- 关闭路径,用直线将最后一个点与远点相连,如果想要保留开放路径,则不需要调用该方法。
stroke()
- 将路径绘制为轮廓形状。
fill()
- 将路径绘制为实心形状,使用该方法是可以不用 closePath 关闭路径。该方法会通过直线连接最后一个点与第一个点实现封闭。
clip()
- 在上下文中设置剪裁区域。
moveTo( x, y )
- 将笔触移动到指定位置。
lineTo( x, y )
- 绘制一条直线,连接当前笔触位置到指定位置。
rect( x, y, width, height )
- 生成一个矩形路径。
arc( x, y, radius, startAngle, endAngle, direction )
- 在指定位置上生成弧线或圆线,半径和弧度由属性指定。
- direction 是布尔类型,表示顺时针或逆时针。
案例:
画一个 V 字形线条
案例:
绘制矩形
绘制矩形简单灵活案例
Canvas 绘制路径 - 弧形
注意: arc(100,100,50,0,1.5*Math.PI) 前三个参数为:中心点坐标和半径,0代表开始的角度,PI为圆周率,一个圆圈为 2 * π , 1.5 * Math.PI 表示 3/4个圆弧。亲,注意了哈,本来不打算解释的,但是我知道你会忘记,我太了解你了,你看,学了又怎么样,不还是得来找答案吗!哈哈哈哈,没关系,加油咯!
Canvas 线性路径
画布默认使用的线性使用的相同的线型。
实际上线条的宽度、端点都可以根据实际绘图需要进行调整。
修改线型属性:
- lineWidth :指定线条的粗细,默认值是 1.0 。
案例:
lineCap :指定线条端点的形状,支持的值有以下三个:
- butt (默认):向线条的每个末端添加平直的边缘。
- round:向线条的每个末端添加圆形线帽。
- square:向线条的每个末端添加正方形线帽。
案例:
lineJoin :指定两条线之间的连接点形状。
- round:创建圆角。
- bevel:创建斜角。
- miter(默认):创建尖角。
案例:
miterLimit
-
与 lineJoin 一起使用。
-
当 lineJoin 设置为 miter 时,可用于确定线条交接点的延伸范围。
案例
练习:绘制柱状统计图
处理 Canvas 中的图像
HTML5 中,不仅可以使用 Canvas 绘制图形,还可以读取文件,然后使用 Canvas 将图像绘制在画布上。
绘制图像的方法:
- drawImage(image,x,y) // 第一个是图片文件,x,y为左上角坐标
- drawImage(image,x,y,w,h)
平铺图像
案例
切割元素
案例
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(资料价值较高,非无偿)
![](https://www.qianduange.cn/upload/article/1b0330fd02be06d3a61137d835bf70d2.jpeg)
最后
技术是没有终点的,也是学不完的,最重要的是活着、不秃。零基础入门的时候看书还是看视频,我觉得成年人,何必做选择题呢,两个都要。喜欢看书就看书,喜欢看视频就看视频。最重要的是在自学的过程中,一定不要眼高手低,要实战,把学到的技术投入到项目当中,解决问题,之后进一步锤炼自己的技术。
技术学到手后,就要开始准备面试了,找工作的时候一定要好好准备简历,毕竟简历是找工作的敲门砖,还有就是要多做面试题,复习巩固。有需要面试题资料的朋友点击这里即可获取!!!。
FnZXMyMDE4LmNuYmxvZ3MuY29tL2Jsb2cvMTMzNDE3OC8yMDE4MDQvMTMzNDE3OC0yMDE4MDQyNzE0NDQ1OTQwMS02MjA1MjU5MjAucG5n?x-oss-process=image/format,png)
案例
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
[外链图片转存中…(img-4T115eZM-1711665196792)]
[外链图片转存中…(img-v7krhPIl-1711665196793)]
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!
[外链图片转存中…(img-EQQgSlm6-1711665196793)]
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(资料价值较高,非无偿)
![](https://www.qianduange.cn/upload/article/1b0330fd02be06d3a61137d835bf70d2.jpeg)
最后
技术是没有终点的,也是学不完的,最重要的是活着、不秃。零基础入门的时候看书还是看视频,我觉得成年人,何必做选择题呢,两个都要。喜欢看书就看书,喜欢看视频就看视频。最重要的是在自学的过程中,一定不要眼高手低,要实战,把学到的技术投入到项目当中,解决问题,之后进一步锤炼自己的技术。
技术学到手后,就要开始准备面试了,找工作的时候一定要好好准备简历,毕竟简历是找工作的敲门砖,还有就是要多做面试题,复习巩固。有需要面试题资料的朋友点击这里即可获取!!!。
[外链图片转存中…(img-CPr8EiZU-1711665196793)]