《JS原理、方法与实践》- canvas作图(五)- 环境的保存和恢复
在绘图的过程中经常需要对环境进行设置 例如填充样式、描边 在操作完之后 往往需要恢复到原来的环境 CanvasRenderingContext2D中可以使用save和restore方法快速操作。
环境的保存和恢复还可以进行多层嵌套。多次使用save方法可以创建多个保存点 每次调用restore方法都会按save相反的顺序获取所保存的环境。
实例
html
!DOCTYPE html
html lang en
head
meta charset UTF-8
meta name viewport content width device-width, initial-scale 1.0
title Document /title
/head
body
canvas id c2d width 600 height 600 浏览器不支持canvas /canvas
script
const canvas document.querySelector( #c2d
if(canvas.getContext) {
const ctx canvas.getContext( 2d
ctx.save();
ctx.fillStyle red
ctx.fillRect(0,0,100,100);
ctx.restore();
ctx.fillRect(100,100,100,100);
}
/script
/body
/html
![运行结果](https://upload-images.jianshu.io/upload_images/2789632-81a76884cda59b34.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
酷炫一款动态背景+鼠标点击效果(HTML +js canvas) 之前用于装饰个人的Hexo博客背景和点击事件,于是动手弄弄顺便学习学习,现在分享出来给有需要的人。 废话不多说 ,分享一款酷炫的页面动态背景 效果见( https://fivecc.cn )
相关文章
- vue.js--基础事件定义,获取数据,执行方法传值
- 史上最全的CSS hack方式一览 jQuery 图片轮播的代码分离 JQuery中的动画 C#中Trim()、TrimStart()、TrimEnd()的用法 marquee 标签的使用详情 js鼠标事件 js添加遮罩层 页面上通过地址栏传值时出现乱码的两种解决方法 ref和out的区别在c#中 总结
- Javascript将字符串日期格式化为yyyy-mm-dd的方法 js number 类型 没有length 属性 string类型才有
- Javascript中双等号(==)隐性转换机制 JS里charCodeAt()和fromCharCode()方法拓展应用:加密与解密
- 【JS】url传参中文乱码的解决方法
- js实现页面与页面之间传值的三种方法
- js代码从页面移植到文件里失效或js代码改动后不起作用的解决的方法
- JS操作Cookie写入和读取的简便方法(一看就懂,直接能用!)!
- js 判断对象中所有属性是否为空
- V8 Ignition:JS 引擎与字节码的不解之缘
- js函数只执行一次,函数重写,变量控制与闭包三种做法
- js - 关于this、new、原型
- FullPage.js全屏插件文档及使用方法
- 自己的一个js库
- 《写给PHP开发者的Node.js学习指南》一1.2 堆栈追踪
- JS函数可以再添加属性(包括方法)
- 微信分享JS-SDK
- 在CentOS 7上安装Node.js的4种方法(yum安装和源码安装)
- openlayers5-webpack 入门开发系列结合 turf.js 实现等值线(附源码下载)
- js创建form添加input项目并提交表单
- 监视在input框中按下回车(enter) js实现
- js 的each()方法遍历对象和数组
- Three 之 three.js (webgl)使用 html div 给 Threejs 场景添加背景图的方法实现
- Js apply 方法 具体解释
- js-xlsx报错:Cannot read properties of undefined (reading ‘utils‘)解决方法(人力资源管理项目excel表格导出)
- js动态创建table表格的四种方法和性能测试(转载)
- JS判断是否是数组的四种做法(转载)
- 原生js源码之JavaScript的apply方法
- 原生js源码之Array数组filter方法
- js获取DIV的位置坐标的三种方法
- js 发送http请求