CamanJS
发表于|更新于
|浏览量:
过分宽大的法律,不易使人服从;太严厉的法律,则绝少被遵守。——富兰克林
分享一个前端基于canvas的图片js库
https://github.com/meltingice/CamanJS
安装
1 | npm install caman |
用法:
1 | Caman('#my-image', function () { |
html
1 | <img |

相关推荐
2024-08-13
小程序框架vue-mini
即使对于君主,研究学问的道路也是没有捷径的。——阿基米德 分享一个基于 Vue 3 的小程序框架 https://vuemini.org/ https://github.com/vue-mini/vue-mini Vue Mini 是一个基于 Vue 3 的小程序框架,它能让你用组合式 API 写小程序。与某些小程序开发方案不同的是 Vue Mini 核心仅仅是一个轻量的运行时库,它既不依赖任何编译步骤,也不涉及任何 Virtual DOM。并且 Vue Mini 从一开始就被设计为能跟小程序原生语法协同工作,你甚至能在同一个页面或组件内混用原生语法与 Vue Mini,这能让你很轻松的将其整合进既有项目中。当然,你也能完全使用 Vue Mini 开发一个小程序。 Vue Mini 仅聚焦于小程序逻辑部分,也就是 JS 部分,它并不影响小程序的模版、样式及配置。 快速创建 1234npm create vue-mini@latestcd <your-project-name>npm installnpm run dev 然后就可以用微信开发者工具打开
2022-01-13
for of和for in
人生而自由,却无往不在枷锁中——卢梭《社会契约论》 我之前写过一篇for in的博客 for in是遍历对象key或者数组下标 前端还可以使用for of来遍历value 简单写一下两者区别和使用方式吧: 12let ruben = {name:'ruben', age:21}for(key in ruben) console.log(key) 然后是for of 提示对象并不是iterable(可迭代的) 因此for of并不能遍历对象的key 接下来看数组的: 12let list = [1,2,3,4,5,6]for(i in list) console.log(i) 可以看到是遍历获取出了下标并不是实际的值 而for of: 12let list = [1,2,3,4,5,6]for(i of list) console.log(i) 遍历出了我们的value
2025-11-28
iptv
希望是一种好东西,也许是世上最好的东西。好东西是永远不会消失的。——肖申克的救赎 iptv-org/iptv 全面上手指南:一条链接看遍全球公开 IPTV 频道(含播放器与脚本示例) 仓库:iptv-org/iptv主页:iptv-org.github.io描述:Collection of publicly available IPTV channels from all over the world话题:iptv m3u playlist streams tv许可:The Unlicense(公共领域风格许可) 想“零门槛”体验全球公开的直播电视频道?iptv-org 维护的这个仓库把世界各地公开可访问的 IPTV(Internet Protocol Television)直播源用标准的 M3U 播放列表统一整理了起来。你只需要在支持直播流的播放器里粘贴一条 URL,就能直接观看。它还配套了节目单(EPG)、频道数据库与 API 项目,组成了一个完整且开放的生态。 本文基于项目 README 与说明整理,带你快速上手、了解配套生态,并附上多个“即复制即...
2025-05-15
wangeditor自定义菜单
时间是衡量事业的标准。 —— 培根 代码如下: 123456789101112131415161718192021222324252627282930313233import { DomEditor, IButtonMenu, IDomEditor, ISelectMenu } from '@wangeditor/editor'export class MentionMenu implements IButtonMenu { constructor() { this.title = '设置标签' // this.iconSvg = '<svg >...</svg>' this.tag = 'button' } title: string iconSvg?: string | undefined hotkey?: string | undefined alwaysEnable?: boolean ...
2020-11-20
vue封装axios请求工具类
以勇气面对人生的巨大悲恸,用耐心对待生活的小小哀伤。——雨果 首先安装 12345678# axioscnpm i --save axios# 格式化参数插件cnpm i -- save qs# 对象合并插件cnpm i -- save lodash# cookie操作cnpm i -- save vue-cookie 然后我们自己封装一个请求组件 首先创建文件 然后放入我们的代码。。。 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132import ...
2022-06-19
ts中枚举
现实生活喜欢对称和轻微的时间错移。——博尔赫斯《南方》 填坑,官方文档:https://www.typescriptlang.org/docs/handbook/enums.html 我新建了一个vue项目用来演示 这里代码如下: 12345678910enum Direction { Up, Down, Left, Right}console.log({ Direction });console.log({ 'Object.entries(Direction)': Object.entries(Direction) });console.log({ 'Direction[0]': Direction[0] });console.log({ 'Direction.Up': Direction.Up }); 打印结果如下: 定义一个双向绑定的值 1const count = ref(Direction.Up)...

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