konva实现双击编辑富文本
发表于|更新于
|浏览量:
那一天我二十一岁,在我一生的黄金时代,我有好多奢望。我想爱,我想吃,我想在一瞬间变成天上半明半暗的云。——《黄金时代》
完整代码放到了:https://gitee.com/VampireAchao/simple-konva-html
主要是这个文件
https://gitee.com/VampireAchao/simple-konva-html/blob/master/richtext-dragable.html
思路来源:https://konvajs.org/docs/sandbox/Rich_Text.html
主要思路:
1.双击时创建(我这里是隐藏显示再定位)富文本dom节点
2.通过htmlToCanvas转换html为canvas
3.使用Konva.Image渲染
效果还是蛮不错的,能做polotno的类似案例
相关推荐
2024-08-15
通过github api统计组织Star数
君子之学,博于外而尤贵精于内。——王廷相 文档如下: https://docs.github.com/zh/rest/orgs/orgs?apiVersion=2022-11-28 代码如下: 123456789101112const response = await fetch('https://api.github.com/orgs/dromara/repos?per_page=100&page=1'); if (!response.ok) { throw new Error(`Error fetching repos: ${response.statusText}`); } const repos = await response.json();console.log(repos)const list = repos.map(({name,stargazers_count})=>({name,stargazers_count}))console....
2022-04-07
setState异步问题
若人间有情,那是开始,也是尽头。——北岛怀念顾城 今天使用react中setState后立马从state中获取,然后使用,发现时灵时不灵的,我立马意识到setState可能是异步的,翻看官方文档,果然: 调用 setState 其实是异步的 —— 不要指望在调用 setState 之后,this.state 会立即映射为新的值。如果你需要基于当前的 state 来计算出新的值,那你应该传递一个函数,而不是一个对象(详情见下文)。 代码不会像预期那样运行的示例: 123456789101112131415161718incrementCount() { // 注意:这样 *不会* 像预期的那样工作。 this.setState({count: this.state.count + 1});}handleSomething() { // 假设 `this.state.count` 从 0 开始。 this.incrementCount(); this.incrementCount(); this.incrementC...
2021-11-23
export default和module.exports
我期望理解,但是也慢慢地感受到了一种责任,给予比接受伟大,去爱比被爱伟大。 ——海明威 我们在vue项目中创建两个js 在util.js中写入 123export default { ruben: 'ruben'} 在api.js中写入 123module.exports = { vampire: 'vampire'} 我们再来一个页面中使用两种方式引用 123456789101112131415<script>import util from '@/common/util.js';import api from '@/common/api.js'const util1 = require('@/common/util.js')const api1 = require('@/common/api.js')export default{ created(){ co...
2023-06-18
CamanJS
过分宽大的法律,不易使人服从;太严厉的法律,则绝少被遵守。——富兰克林 分享一个前端基于canvas的图片js库 http://camanjs.com/ https://github.com/meltingice/CamanJS 安装 1npm install caman 用法: 1234567Caman('#my-image', function () { this.brightness(10); this.contrast(30); this.sepia(60); this.saturation(-30); this.render(); }); html 12345<img data-caman="brightness(10) contrast(30) sepia(60) saturation(-30)" data-caman-hidpi="/path/to/image@2x.jpg" src="path/to/image.jpg&q...
2024-11-14
uniapp自动化测试
日常生活的摩擦龃龉,十之其九起于口舌。——贝涅特 推荐使用HBuilderX uni-app自动化测试插件 https://ext.dcloud.net.cn/plugin?id=5708 安装完毕,右键项目选择uni-app运行自动化测试即可 这里可以在HBuilderX设置的插件设置里取消勾选“自动修改jest.config.js文件中的testMatch”选项才能自定义测试目录 这是我的jest.config.js: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455module.exports = { globalTeardown: '@dcloudio/uni-automator/dist/teardown.js', testEnvironment: '@dcloudio/uni-automator/dist/environment.js', testEnvironm...
2020-08-04
javascript防抖
JavaScript防抖:用于防止重复表单提交等场景 点击一次后,执行防抖函数antiShake,按钮设置为不可用状态,开始计时,计时结束移除不可用状态 123456789<button onclick="antiShake(this)">防抖测试</button> <script type="application/javascript"> function antiShake(dom) { dom.setAttribute("disabled", "disabled"); setTimeout(() => { dom.removeAttribute("disabled"); }, 3000); } </script> 顺带聊聊 12//计时器清零,参...

阿超
我的名字叫阿超 年龄25岁 家在北京市 职业是软件开发 每天最晚也会在八点前回家 不抽烟 酒浅尝辄止 晚上十二点上床 保证睡足八个小时 睡前写一篇博客 再做二十分钟俯卧撑暖身 然后再睡觉 基本能熟睡到天亮 像婴儿一样不留下任何疲劳和压力 就这样迎来第二天的早晨 健康检查结果也显示我很正常 我想说明我是一个不论何时都追求内心平稳的人 不拘泥于胜负 不纠结于烦恼 不树立使我夜不能寐的敌人 这就是我在这社会的生活态度
Follow Me公告
This is my Blog