fabric photo
发表于|更新于
|浏览量:
这是一个流行离开的世界,但是我们都不擅长告别。——《生活在别处》
今天分享一个fabric photo,它是一个基于 canvas 的纯前端的图片编辑器,支持方形,圆形,箭头,缩放,拖拽,鹰眼,马赛克,涂鸦,线条,导出 png,剪切等
github地址:https://github.com/ximing/fabric-photo
在线体验Demo:https://ximing.github.io/fabric-photo/

找了很多个,这个应该是很好用的了
并且协议为MIT,支持商用
相关推荐
2024-09-29
js滚动到对应元素scrollIntoView
娇柔做作,失去真实的不是美,充满了富贵荣华的名利思想,也不是真美。——孟德斯鸠 文档: Element.scrollIntoView() - Web API | MDN 用法: 123scrollIntoView()scrollIntoView(alignToTop)scrollIntoView(scrollIntoViewOptions) 例如我选中某个元素执行 123456const element = document.getElementById("box");element.scrollIntoView();element.scrollIntoView(false);element.scrollIntoView({ block: "end" });element.scrollIntoView({ behavior: "smooth", block: "end", inline: "nearest" });
2021-11-02
vue父组件调用子组件方法
抱怨身处黑暗,不如提灯前行。——刘同 首先是官方文档 这里使用ref属性去访问子元素 1<hello-world ref="helloWorld" msg="Hello World"></hello-world> 然后打印一下 1console.log(this.$refs.helloWorld); 可以看到成功获取到 再到子组件定义一个方法: 父组件访问: 效果:
2024-11-08
typescript-exercises(十三)
人不仅为自己而生,而且也为祖国活着。——柏拉图 题目: 123456// This enables module augmentation mode.import 'date-wizard';declare module 'date-wizard' { // Add your module extensions here.} 报错: 12345index.ts(79,30): error TS2339: Property 'pad' does not exist on type 'typeof import("/node_modules/date-wizard/index.d.ts")'.index.ts(101,67): error TS2339: Property 'hours' does not exist on type 'DateDetails'.test.ts(5,5): error TS2344:...
2024-10-07
typescript-exercises
要随时牢记在心中:决心取得成功比任何一件事情都重要。——林肯 分享一个学习typescript练习的开源项目 github: https://github.com/typescript-exercises/typescript-exercises 网站: https://typescript-exercises.github.io/ 这里有不同的练习,目前是16个,例如: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103/*Welcome to: ................................................................ . ...
2020-11-24
elementUI隐藏组件
追求使你充实,成功和失败都是伴奏。——史铁生 关于ElementUI相信大家只要看过我这篇博客,都能有一定的了解 今天聊聊ElementUI官方文档都找不到的一个隐藏组件 那便是滚动条el-scrollbar 我们在开发中可能会用到数据量稍微多一点点的情况 例如我这里写的一个v-for 123456789<div style="width: 20%"> <div v-for="(item, i) in tableData" :key="i"> <div v-text="item.name"></div> <div v-text="item.name"></div> <div v-text="item.name"></div> <div v-text="item.name"></div> &...
2022-03-11
Array.from
世界在音乐中得到了完整的再现和表达。它是各种艺术当中第一位的,帝王式的艺术,能够成为音乐那样,则是一切艺术的目的。——叔本华 继续还是js中Array的方法 这次说的方法是from:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/from 这个方法简单应用如下: 12345console.log(Array.from('foo'));// expected output: Array ["f", "o", "o"]console.log(Array.from([1, 2, 3], x => x + x));// expected output: Array [2, 4, 6] 我这里写个稍微复杂点的例子,随机生成文件名并排序 1[...new Set(Array.from(Array(200).fill('文件'),x=>x+String(...
