3. 第3部分controller.js 这一部分的功能就是要修改毛笔的颜色,还有清空画布。 功能简单,我们一起向下讲。 一开始依然是init controller.js
这个4+4也就是使用canvas来生成的,难度中等,但是不能使用document来操作,因为核心没有。
js实现截图并保存图片在本地(html转canvas、canvas转image) 一、html转canvas 需要的库html2canvas.js和canvas2image.js 话不多说,直接上代码! html 原始HTML 04hexo博客自制背景动画(代码雨)现在的效果可能有点不太好看,因为是看了很多代码雨的 js 代码,明白了大概如何实现之后依葫芦画瓢做出来的,待未来优化。04Fabric.js 清空画布,甚至连画布元素也给你干掉😏上面的代码可以把清空画布,但如果没有了解过 canvas ,或者不熟悉的工友,看到上面的代码可能会有点懵。02Fabric.js 设置容器类名要注意这几点用 fabric.js 创建画布时,fabric.js 会在 canvas 元素外包一层 div 容器。05Fabric.js 缩放画布 🍬getZoom 可以获取画布当前缩放级别,用 setZoom 设置一个新的缩放级别。03Fabric.js 让用户手动加粗文本如果你还不清楚 Fabric.js 有什么用,我强烈推荐你阅读 《Fabric.js 从入门到目中无人》 。该文能让你的前端技术再点亮一个技能点。03创建canvas设置canvas尺寸绘制图形Canvas库Canvas是常见的前端技术,但是由于API众多,使用复杂,且对程序员的数学功底、空间想象能力乃至审美都有一定要求,所以真正擅长canvas的前端并不多,但并不代表大家就学不好canvas。我在此将常用的canvas使用场景罗列出来希望能帮助到大家。01Github 2.9 万 Star !这款绘图神器千万别错过大家好,我是前端实验室的小师妹!一名资深的互联网玩家,专注分享大前端领域技术、面试宝典、学习资料等~04Fabric.js 橡皮擦的用法(包含恢复功能)Fabric.js 的基础包并没有包含橡皮擦模块,如果你的项目需要使用橡皮擦,要使用定制版的 Fabric.js 。03前端实现头像转黑白头像做了个将头像转换成黑白的页面: https://klren0312.github.io/avatarToBlackAndWhite/02Fabric.js 笔刷到底怎么用?之前写过 《Fabric.js 橡皮擦的用法》 也用到了绘图模式,有兴趣的可以去看看。04HTML页面导出PDF——高清版需要做一个导出PDF的功能,网上找有很多,但是一般导出来的都是比较模糊的那种,下面这个是高清版的,导出的PDF都是几M,跟正常手动导出的差不多,很清晰。03Fabric.js 居中元素 🎗️阅读本文需要你有一定的 Fabric.js 基础,如果还不太了解 Fabric.js 是什么,可以阅读 《Fabric.js 从入门到膨胀》02为博客页面添加海报分享功能以前浏览别的博主网站的时候总会在文章页末看到或多或少一些分享功能,比较常见的都是些社交平台的按钮,当时想的是功能虽好可有多少人会去用啊?心想嘛就是个摆设还不如不要占位置23301Fabric.js 控制元素层级 👑元素数量多了,难免会产生重叠。又或者某些效果需要几个元素重叠起来。这些情况大概率需要控制元素的层级。02在 Vue3中使用Fabric.js实现渐变(Gradient)效果,包括径向渐变radial简单来说,如果你需要用 canvas 做特效或者做交互,那不妨试试 Fabric.js 这个库,它会使开发更加简单和直观。03表白代码,爱心树html表白代码,爱心树html 实例如下: <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>爱心树表白动画</title> <style> body { margin: 0; padding: 0; background: #fafafa; font-size: 14px; font-family: "微软雅黑", "宋04Fabric.js 更换图片的3种方法(包括更换分组内的图片,以及存在缓存的情况)我是在原生环境下开发的,同时也提供了一份 Vue3 环境下开发的代码(文末有链接)。04Fabric.js 自由绘制椭圆持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第2天,点击查看活动详情02Fabric.js 3个api设置画布宽高除了初始化时设置之外,Fabric.js 还提供了其他 api 供后期修改画布宽高。04Fabric.js 摆正元素的4种方法(带过渡动画)我不知道 straighten 使用 “摆正” 这个词来翻译正不正确,反正我就是要这么叫!03Fabric.js 自定义选框样式框选是 fabric.js 默认提供的一种操作,fabric.js 提供了几个属性可以设置选框样式。02canvas生成图片今天接到个小需求:前端生成个二维码并且以img标签的方式在web上展示出来。 二维码就不用说了,搜一下实现的各种插件一大堆,这里我用基于jquery的qrcode插件生成一枚。look~ <!DOCT06Fabric.js 自由绘制圆形Fabric.js 默认的框选操作是矩形,如果需要做到上图的效果,需要做以下3步:03【技术分享】支持移动手机的刮刮卡效果实现ScratchCard是一款支持移动手机的HTML5 canvas刮刮卡JS插件。该刮刮卡JS插件支持移动触摸事件,提供刮卡的回调函数,简单易用,效果非常不错。02Planetary.js 旋转地球插件(function() { var canvas = document.getElementById('quakeCanvas'); // Create our Planetary.js planet and set some initial values; // we use several custom plugins, defined at the bottom of the file var planet = planetaryjs.planet(); planet.loadPlugin(autocenter({extraHeight: -120})); planet.loadPlugin(autoscale({extraHeight: -120})); planet.loadPlugin(planetaryjs.plugins.earth({ topojson: { file: 'https://101.43.39.125/HexoFiles/js/planetaryjs/world-110m.json' }, oceans: { fill: '#001320' }, land: { fill: '#06304e' }, borders: { stroke: '#001320' } })); planet.loadPlugin(planetaryjs.plugins.pings()); planet.loadPlugin(planetaryjs.plugins.zoom({ scaleExtent: [50, 5000] })); planet.loadPlugin(planetaryjs.plugins.drag({ onDragStart: function() { this.plugins.autorotate.pause(); }, onDragEnd: function() { this.plugins.autorotate.resume(); } })); planet.loadPlugin(autorotate(5)); planet.projection.rotate([100, -10, 0]); planet.draw(canvas); // Plugin to resize the canvas to fill the window and to // automatically center the planet when the window size changes function autocenter(options) { options = options || {}; var needsCentering = false; var globe = null; var resize = function() { var width = window.outerWidth /2 + (options.extraWidth || 0); var height = window.outerHeight/2 + (options.extraHeight || 0); globe.canvas.width = width; globe.canvas.height = height; globe.projection.translate([width / 2, height / 2]); }; return function(planet) { globe = planet; planet.onInit(function() { needsCentering = true; d3.select(window).on('resize', function() { needsCentering = true; }); }); planet.onDraw(function() { if (needsCentering) { resize(); needsCentering = false; } }); }; }; // Plugin to automatically scale the planet's projection based // on the window size when the planet is initia03PDF.js实现个性化PDF渲染(文本复制)这种实现方式优缺点都很明显: 优点:自带“打印”,“搜索”,“翻页”等功能,强大且实现方便。 缺点:不同浏览器的pdf工具样式不一,且无法满足个性化需求,比如:禁止打印,下载等。05Fabric.js 基础画笔的用法 BaseBrush本文介绍 Fabric.js 的基础笔刷用法。如果你还不知道 Fabric.js 是什么,我墙裂建议你阅读一下 《Fabric.js 从入门到膨胀》 。03Fabric.js IText 手动设置斜体 🎋持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第29天,点击查看活动详情02使用 Babylon.js 在 HTML 页面加载 3D 对象五一 Windwos Blogs 推了一篇博客, Babylon.js v3.2 发布了。因为一直有想要在自己博客上加载 3D 对象的冲动,这两天正好看到了,就动手研究研究。本人之前也并没有接触过 WebGL ,这方面算是知识盲区,需求完成之后感觉非常炫酷,顺手写篇博客记录下来。不得不说 3D 打印和 VR 慢慢的开始走进平时的生活了,技术的成熟与硬件成本的变低,结合内容跨平台共享与各种简单的 js 框架, WebGL 和 WebVR 很可能就是未来 Web 方向的主流技术。期待美好而炫酷的未来ing Ba05使用 Babylon.js 在 HTML 页面加载 3D 对象五一 Windwos Blogs 推了一篇博客, Babylon.js v3.2 发布了。因为一直有想要在自己博客上加载 3D 对象的冲动,这两天正好看到了,就动手研究研究。本人之前也并没有接触过 WebGL ,这方面算是知识盲区,需求完成之后感觉非常炫酷,顺手写篇博客记录下来。不得不说 3D 打印和 VR 慢慢的开始走进平时的生活了,技术的成熟与硬件成本的变低,结合内容跨平台共享与各种简单的 js 框架, WebGL 和 WebVR 很可能就是未来 Web 方向的主流技术。期待美好而炫酷的未来ing Ba012深圳Java培训:使用JS实现简单喷泉效果最近,在教学生使用JS的基本操作,为了练习JS的基本作用,特地写了一个喷泉效果,代码如下:00微信刷屏的「给我一面国旗」如果要做到,技术原理是什么?https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/Wechat_webpage_authorization.html01小程序Echarts 构建中国地图并锚定区域点击事件该数据是Canvas绘制地图的关键,可以使用json 或者 js 形式进行导入,小程序中使用js 更为方便。02Fabric.js 使用自定义字体这次就讲讲在 Fabric.js 中创建文本时怎么使用自定义字体、在项目运行时怎么修改字体、以及推荐一个精简字体库的工具。02在纯JaveScript中实现报表导出:从“PDF”到“JPG”但总有一些实际应用场景,需要的不仅仅是将现有内容导出,还需要我们对一些内容的格式进行转化。03组件分享之前端组件——基于pdf.js在线预览PDF文件近期正在探索前端、后端、系统端各类常用组件与工具,对其一些常见的组件进行再次整理一下,形成标准化组件专题,后续该专题将包含各类语言中的一些常用组件。欢迎大家进行持续关注。02Fabric.js 拖放元素进画布上面的代码使用了 Fabric.js 绑定了页面上的画布,并创造了一个粉红色的矩形。03p5.js 状态管理原生 canvas 提供了 save() 和 restore() 两个方法去管理画布状态。p5.js 作为一个 canvas 库,也理所当然的提供了状态管理的方法。在 p5.js 里这两个方法叫 push() 和 pop()。02Fabric.js 激活输入框🎈在 HTML 中,input 输入框有2种方法自动聚焦,最简单的是在 input 标签上添加 autofocus 属性。01canvas合成任意数量图片、合成二维码加文字封装处理代码已上传至github github代码地址:https://github.com/Miofly/mio.git02【愚公系列】2022年09月 微信小程序-three.js绘制多维旋转正方体Three.js 是一款运行在浏览器中的 3D 引擎,你可以用它创建各种三维场景,包括了摄影机、光影、材质等各种对象。02Fabric.js 样式不更新怎么办?不知道你有没有遇到过在使用 Fabric.js 时无意中一些骚操作修改了元素的样式,但刷新画布却没更新元素样式?01Fabric.js 精简输出的JSON🎫如果你还不太了解 Fabric.js 的序列化和反序列化,可以看看 Fabric.js 序列化 和 Fabric.js 反序列化。03D3.js + Canvas 绘制组织结构图大家好,又见面了,我是你们的朋友全栈君。 D3.js + Canvas 绘制组织结构图 使用 D3.js 默认的 svg 渲染 D3默认的树状图画图使用的是svg 使用svg有好有坏: 好处是方便操作04Fabric.js 使用纯色遮挡画布(前景色)如果你的项目使用到 fabric.js ,可以直接使用 fabric.js 提供的方法去遮盖画布,而且用法非常简单。02H5-Canvas实战-合成任意数量图片文字-函数封装处理代码已上传至github github代码地址:https://github.com/Miofly/mio.git01html2canvas 一个强大的使用js开发的浏览器网页截图工具html2canvas是一个JavaScript类库,它使用了html5和css3的一些新功能特性,实现了在客户端对网页进行截图的功 能。html2canvas通过获取页面的DOM和元素的样式信息,并将其渲染成canvas图片,从而实现给页面截图的功能。01
现在的效果可能有点不太好看,因为是看了很多代码雨的 js 代码,明白了大概如何实现之后依葫芦画瓢做出来的,待未来优化。
上面的代码可以把清空画布,但如果没有了解过 canvas ,或者不熟悉的工友,看到上面的代码可能会有点懵。
用 fabric.js 创建画布时,fabric.js 会在 canvas 元素外包一层 div 容器。
getZoom 可以获取画布当前缩放级别,用 setZoom 设置一个新的缩放级别。
如果你还不清楚 Fabric.js 有什么用,我强烈推荐你阅读 《Fabric.js 从入门到目中无人》 。该文能让你的前端技术再点亮一个技能点。
Canvas是常见的前端技术,但是由于API众多,使用复杂,且对程序员的数学功底、空间想象能力乃至审美都有一定要求,所以真正擅长canvas的前端并不多,但并不代表大家就学不好canvas。我在此将常用的canvas使用场景罗列出来希望能帮助到大家。
大家好,我是前端实验室的小师妹!一名资深的互联网玩家,专注分享大前端领域技术、面试宝典、学习资料等~
Fabric.js 的基础包并没有包含橡皮擦模块,如果你的项目需要使用橡皮擦,要使用定制版的 Fabric.js 。
做了个将头像转换成黑白的页面: https://klren0312.github.io/avatarToBlackAndWhite/
之前写过 《Fabric.js 橡皮擦的用法》 也用到了绘图模式,有兴趣的可以去看看。
需要做一个导出PDF的功能,网上找有很多,但是一般导出来的都是比较模糊的那种,下面这个是高清版的,导出的PDF都是几M,跟正常手动导出的差不多,很清晰。
阅读本文需要你有一定的 Fabric.js 基础,如果还不太了解 Fabric.js 是什么,可以阅读 《Fabric.js 从入门到膨胀》
以前浏览别的博主网站的时候总会在文章页末看到或多或少一些分享功能,比较常见的都是些社交平台的按钮,当时想的是功能虽好可有多少人会去用啊?心想嘛就是个摆设还不如不要占位置233
元素数量多了,难免会产生重叠。又或者某些效果需要几个元素重叠起来。这些情况大概率需要控制元素的层级。
简单来说,如果你需要用 canvas 做特效或者做交互,那不妨试试 Fabric.js 这个库,它会使开发更加简单和直观。
表白代码,爱心树html 实例如下: <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>爱心树表白动画</title> <style> body { margin: 0; padding: 0; background: #fafafa; font-size: 14px; font-family: "微软雅黑", "宋
我是在原生环境下开发的,同时也提供了一份 Vue3 环境下开发的代码(文末有链接)。
持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第2天,点击查看活动详情
除了初始化时设置之外,Fabric.js 还提供了其他 api 供后期修改画布宽高。
我不知道 straighten 使用 “摆正” 这个词来翻译正不正确,反正我就是要这么叫!
框选是 fabric.js 默认提供的一种操作,fabric.js 提供了几个属性可以设置选框样式。
今天接到个小需求:前端生成个二维码并且以img标签的方式在web上展示出来。 二维码就不用说了,搜一下实现的各种插件一大堆,这里我用基于jquery的qrcode插件生成一枚。look~ <!DOCT
Fabric.js 默认的框选操作是矩形,如果需要做到上图的效果,需要做以下3步:
ScratchCard是一款支持移动手机的HTML5 canvas刮刮卡JS插件。该刮刮卡JS插件支持移动触摸事件,提供刮卡的回调函数,简单易用,效果非常不错。
(function() { var canvas = document.getElementById('quakeCanvas'); // Create our Planetary.js planet and set some initial values; // we use several custom plugins, defined at the bottom of the file var planet = planetaryjs.planet(); planet.loadPlugin(autocenter({extraHeight: -120})); planet.loadPlugin(autoscale({extraHeight: -120})); planet.loadPlugin(planetaryjs.plugins.earth({ topojson: { file: 'https://101.43.39.125/HexoFiles/js/planetaryjs/world-110m.json' }, oceans: { fill: '#001320' }, land: { fill: '#06304e' }, borders: { stroke: '#001320' } })); planet.loadPlugin(planetaryjs.plugins.pings()); planet.loadPlugin(planetaryjs.plugins.zoom({ scaleExtent: [50, 5000] })); planet.loadPlugin(planetaryjs.plugins.drag({ onDragStart: function() { this.plugins.autorotate.pause(); }, onDragEnd: function() { this.plugins.autorotate.resume(); } })); planet.loadPlugin(autorotate(5)); planet.projection.rotate([100, -10, 0]); planet.draw(canvas); // Plugin to resize the canvas to fill the window and to // automatically center the planet when the window size changes function autocenter(options) { options = options || {}; var needsCentering = false; var globe = null; var resize = function() { var width = window.outerWidth /2 + (options.extraWidth || 0); var height = window.outerHeight/2 + (options.extraHeight || 0); globe.canvas.width = width; globe.canvas.height = height; globe.projection.translate([width / 2, height / 2]); }; return function(planet) { globe = planet; planet.onInit(function() { needsCentering = true; d3.select(window).on('resize', function() { needsCentering = true; }); }); planet.onDraw(function() { if (needsCentering) { resize(); needsCentering = false; } }); }; }; // Plugin to automatically scale the planet's projection based // on the window size when the planet is initia
这种实现方式优缺点都很明显: 优点:自带“打印”,“搜索”,“翻页”等功能,强大且实现方便。 缺点:不同浏览器的pdf工具样式不一,且无法满足个性化需求,比如:禁止打印,下载等。
本文介绍 Fabric.js 的基础笔刷用法。如果你还不知道 Fabric.js 是什么,我墙裂建议你阅读一下 《Fabric.js 从入门到膨胀》 。
持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第29天,点击查看活动详情
五一 Windwos Blogs 推了一篇博客, Babylon.js v3.2 发布了。因为一直有想要在自己博客上加载 3D 对象的冲动,这两天正好看到了,就动手研究研究。本人之前也并没有接触过 WebGL ,这方面算是知识盲区,需求完成之后感觉非常炫酷,顺手写篇博客记录下来。不得不说 3D 打印和 VR 慢慢的开始走进平时的生活了,技术的成熟与硬件成本的变低,结合内容跨平台共享与各种简单的 js 框架, WebGL 和 WebVR 很可能就是未来 Web 方向的主流技术。期待美好而炫酷的未来ing Ba
最近,在教学生使用JS的基本操作,为了练习JS的基本作用,特地写了一个喷泉效果,代码如下:
https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/Wechat_webpage_authorization.html
该数据是Canvas绘制地图的关键,可以使用json 或者 js 形式进行导入,小程序中使用js 更为方便。
这次就讲讲在 Fabric.js 中创建文本时怎么使用自定义字体、在项目运行时怎么修改字体、以及推荐一个精简字体库的工具。
但总有一些实际应用场景,需要的不仅仅是将现有内容导出,还需要我们对一些内容的格式进行转化。
近期正在探索前端、后端、系统端各类常用组件与工具,对其一些常见的组件进行再次整理一下,形成标准化组件专题,后续该专题将包含各类语言中的一些常用组件。欢迎大家进行持续关注。
上面的代码使用了 Fabric.js 绑定了页面上的画布,并创造了一个粉红色的矩形。
原生 canvas 提供了 save() 和 restore() 两个方法去管理画布状态。p5.js 作为一个 canvas 库,也理所当然的提供了状态管理的方法。在 p5.js 里这两个方法叫 push() 和 pop()。
在 HTML 中,input 输入框有2种方法自动聚焦,最简单的是在 input 标签上添加 autofocus 属性。
代码已上传至github github代码地址:https://github.com/Miofly/mio.git
Three.js 是一款运行在浏览器中的 3D 引擎,你可以用它创建各种三维场景,包括了摄影机、光影、材质等各种对象。
不知道你有没有遇到过在使用 Fabric.js 时无意中一些骚操作修改了元素的样式,但刷新画布却没更新元素样式?
如果你还不太了解 Fabric.js 的序列化和反序列化,可以看看 Fabric.js 序列化 和 Fabric.js 反序列化。
大家好,又见面了,我是你们的朋友全栈君。 D3.js + Canvas 绘制组织结构图 使用 D3.js 默认的 svg 渲染 D3默认的树状图画图使用的是svg 使用svg有好有坏: 好处是方便操作
如果你的项目使用到 fabric.js ,可以直接使用 fabric.js 提供的方法去遮盖画布,而且用法非常简单。
html2canvas是一个JavaScript类库,它使用了html5和css3的一些新功能特性,实现了在客户端对网页进行截图的功 能。html2canvas通过获取页面的DOM和元素的样式信息,并将其渲染成canvas图片,从而实现给页面截图的功能。
领取专属 10元无门槛券
手把手带您无忧上云