Fabric.js 使用旋转手柄将旋转限制为 x 度

2024-01-14

我正在使用 Fabric.js 并尝试使用旋转手柄允许画布上的任何对象旋转,不是自由 360 度,而是一次只能旋转 15 度。我非常努力地搜索,但到目前为止找不到答案。这可能吗?


更短的解决方案:

canvas.on('object:rotating', function(options) {
  var step = 15;
  options.target.angle = Math.round(options.target.angle / step) * step;
});

UPD:从 1.6.7 开始你可以使用fabric.Object.snapAngle财产:

someFabricObject.snapAngle = 15;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Fabric.js 使用旋转手柄将旋转限制为 x 度 的相关文章

  • $_POST 返回空

    尝试练习一下 ajax 和 PHP 我不明白为什么每当我发送一些东西时 它都会返回空或未定义的索引 PHP 返回空 JS form submit function var meth this attr action var msg msg
  • 在 userCodeAppPanel 中看不到我的 javascript 代码

    这是来自 Google 电子表格中包含的脚本的代码 唯一的其他代码是onOpen它创建菜单和showDialog 功能 function showDialog userInterface HtmlService createHtmlOutp
  • 这段代码有什么问题。如果用户选择或不选择复选框,为什么它仍然显示 MsgBox? [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 无论我是否选择复选框 它仍然会给出
  • Jquery文件上传插件进度条

    这个插件 https github com blueimp jQuery File Upload wiki管理网页中的文件上传 并且可以在上传过程中添加很多 UI 元素 您创建一个输入文件类型元素 然后绑定 js 文件 使用实例化代码和 w
  • 共享工作线程在重新加载页面时终止

    为什么 Shared Worker 在重新加载页面时死掉了 应该是复活了我该如何解决这个问题 重新加载前 重新加载后 在 example com 上按 F5 家长工人 var port new SharedWorker app worker
  • 在 Node.js 中包含另一个文件中的 JavaScript 类定义

    我正在为 Node js 编写一个简单的服务器 并且使用我自己的类 名为User看起来像 function User socket this socket socket this nickname null just the typical
  • 如何在单页应用程序中使用 #-URL?

    本文 http danwebb net 2011 5 28 it is about the hashbangs提出了一个非常令人信服的论点 因为 URL 是长期存在的 它们被添加书签并传递 所以它们应该是有意义的 并且使用哈希进行真正的路由
  • Javascript 无法正确排序 DECIMAL 数字

    我有一些代码可以按字母顺序对名称进行排序 我遇到的问题是它处理小数的方式 它对名称进行排序 如下所示 我宁愿它按数字递增 DOG 1 0510 DOG 1 1031 DOG 11 1792 DOG 12 0920 DOG 12 1170 D
  • Cordova SQLite 保存 BLOB

    我的 Cordova SQLite 插件有问题 如何将 BLOB 图像保存到 SQLite 我在 JS 中有 BLOB 对象 Blob size 96874 type image jpeg proto Blob length 1 我试图拯救
  • Javascript - 使数组索引 toLowerCase() 不起作用

    我试图将所有数组索引设置为小写字符串 但它不起作用 我在这里查看了其他答案并尝试了他们的解决方案 例如使用toString 添加之前toLowerCase但它不起作用 这很奇怪 我创建了一个问题的jsfiddlehere https jsf
  • 如何针对 IE 进行优化?

    我有一个 JS 密集型应用程序 它在 IE 中运行缓慢 我将花费大约一周的时间来优化 IE 并且我想要一些关于尝试的方向 我发现这个线程引用Drip https ieleak svn sourceforge net svnroot iele
  • 如何将查询参数添加到守卫中的路由并将其传递给 Angular 4 中的组件?

    我在我的 Angular 4 应用程序中使用路由保护 如果条件满足并返回 true 我想向路由添加一个查询参数 这是我一直在研究的代码 Injectable export class ViewGuardService implements
  • 在each() 和forEach() 中使用break 和 continue

    如果我们不能使用 break 和 continue 关键字 我不确定我是否理解函数式循环 映射的价值 我可以做这个 collections users models forEach function item index can t use
  • 处理时区转换的 JavaScript 库

    是否有一个 JavaScript 库可以处理时区转换 并考虑 DST 规则和此类内容 我知道有类似的问题 但我见过的问题似乎都没有真正适合我的问题的答案 我想在时区 A 创建一个日期并能够对其进行操作 添加天数 小时等 然后将其转换为另一个
  • Moment.js 动态更新时间(以秒为单位)

    我试图显示时钟 that 每秒更新一次 e g 2015 年 1 月 5 日 12 05 01 它似乎对我来说工作得很好 对于相同的代码 并且只有 moment min js 指向v2 11 0 看看代码 来源 MilkyWayJoe va
  • 如何将OpenLayers多边形坐标转换为纬度和经度?

    我正在使用开放层 https openlayers org en latest examples draw freehand html绘制多边形并保存坐标的技术 这是我的代码 var raster new ol layer Tile sou
  • 在 Windows 上静默安装 Qt55 Enterprise

    编辑 在 Qt 支持的帮助下 我已经解决了如何自动化 Qt 企业安装程序的这两个部分 下面是脚本调用 我正在尝试在 Windows 8 1 和 Windows 10 上静默安装 Qt 5 5 1 Enterprise 使用 script 开
  • 如何使 4.X Typescript 项目与旧版本的 Typescript(如 3.X)兼容?

    如何使基于 TS 4 X 构建的软件包与 3 X 兼容 例如 如果我有较新的版本 则使用新功能 否则使用any or unknown或旧版本支持的任何内容 有没有可能使用指令 https www typescriptlang org doc
  • javascript从字符串创建不区分大小写的正则表达式

    我试图通过以不区分大小写的方式将输入与正则表达式匹配来进行验证 正则表达式作为对象上的字符串从服务中下来 我可能会得到类似的东西 regex ane 我可以执行以下操作 var rx new RegExp object regex The
  • 文件和目录条目 API 在 Chrome 中损坏?

    我正在尝试使用文件和目录条目 API 创建一个文件上传器工具 该工具允许我将文件和目录的任意组合放入浏览器窗口中 以供读取和上传 我完全意识到 可以通过使用文件输入元素来实现类似的功能webkitdirectory已启用 但我正在测试一个用

随机推荐

  • Android 同时使用 getFragmentManager 和 getSupportFragmentManager 会导致重叠

    我的活动中有这样的内容 Override public void onNavigationDrawerItemSelected int position Fragment fragment null switch position 1 ca
  • 获取已连接的 USB 设备列表

    如何获取 Windows 计算机上所有已连接 USB 设备的列表 为您的项目添加对 System Management 的引用 然后尝试如下操作 using System using System Collections Generic u
  • 获取 UIView 框架的缩放动画

    我正在尝试添加一个带有过渡样式缩放动画的 UIView 如下所示 lt gt v 视图以一个小框架 centerParent x centerParent y 20 20 开始 然后更改为 centerParent x centerPare
  • CSS 模糊滤镜在 Firefox 和 IE 10 中不起作用,有其他选择吗?

    我使用这个 CSS 代码blur effect blur webkit filter blur 5px moz filter blur 5px o filter blur 5px ms filter blur 5px filter blur
  • 春季验证@AssertTrue

    如何在视图 jsp 上显示由于以下原因而发生的验证错误消息 AssertTrue注解 它不依赖于特定字段 但我用它来验证字段组合 如果我使用
  • 在 Raspberry Pi 上使用 Python smbus - 与语法混淆

    我正在尝试在 Raspberry Pi 上使用 python smbus 使用 I2C 与 MMA7660 加速计芯片进行通信 在下面的代码中 我正在读取芯片的寄存器 0x 00 0x01 0x02 和 0x03 并且我得到的值完全相同 查
  • 如何在 Bash 中隐藏命令输出

    我想让我的 Bash 脚本对最终用户来说更加优雅 Bash 执行命令时如何隐藏输出 例如 当 Bash 执行时 yum install nano 执行 Bash 的用户将看到以下内容 Loaded plugins fastestmirror
  • Apache TOMCAT 上的 Ember-CLI

    我正在尝试在 Apache tomcat 上加载 ember cli 内置服务器应用程序 我使用以下命令在生产模式下构建了我的应用程序 ember build 环境制作 我把文件移到了我的 dist文件夹到我的 apache tomcat
  • setInterval和clearInterval,如何只运行1次?

    我只想运行该函数 1 次 timerA setInterval function codes clearInterval timerA 2000 我只想调用 setInterval 内的函数 1 次 我该如何使用 setInterval 和
  • 添加新 UIWindow 时以编程方式隐藏状态栏?

    当显示我自己的自定义警报时 我目前正在向我的应用程序添加一个新的 UIWindow 在添加此 UIWindow 之前 我的应用程序隐藏了状态栏 但现在它是可见的 如何在这个新窗口中以编程方式隐藏状态栏 我已经尝试了一切 但它不起作用 这就是
  • (在哪里)clang 是否记录了实现定义的行为?

    C 中实现定义的行为是未指定的行为 每个符合要求的实现都必须记录其选择 我很容易找到 gcc 的此类文档here https gcc gnu org onlinedocs gcc 5 3 0 gcc C Implementation htm
  • 无法从 RTCPeerConnection 获取 IP V4 地址 - chrome

    我需要从 Web 应用程序获取客户端本地 IP 地址 为此 我使用标准 RTCPeerConnection 实现来获取 但是返回的ice候选并不携带IP V4地址 而是一个看起来像guid的地址 asdf xxxx saass xxxx l
  • 如何让我的 Perl 脚本对子进程使用多个核心?

    我正在研究一个数学模型 该模型使用 XFOIL 生成的数据 XFOIL 是一种流行的航空航天工具 用于查找机翼的升力和阻力系数 我有一个 Perl 脚本 它使用不同的输入参数重复调用 XFOIL 以生成我需要的数据 我需要 XFOIL 运行
  • 使用ansible playbook执行curl -X

    我想使用 ansible playbook 执行下一个命令 curl X POST email protected cdn cgi l email protection H Content Type application json htt
  • SQL Server 的 LIMIT 和 OFFSET 等效吗?

    在 PostgreSQL 中有Limit and Offset关键字将允许非常轻松地对结果集进行分页 SQL Server 的等效语法是什么 SQL Server 2012 中现在可以轻松实现此功能 从 SQL Server 2012 开始
  • 将 mysql 值赋给变量 inline

    为什么这不起作用我试图获取之前和当前的值来计算百分比变化 我正确地得到了两个值 但现在我如何重用它们来进行数学运算 当我尝试下面的命令时我得到 错误 1054 42S22 字段列表 中存在未知列 currentVal SELECT IFNU
  • 构建有关使用 Sun 专有 API 的警告

    我正在尝试清理我的构建环境 并发现了一些关于使用 Sun 专有 API 的警告 javac workspace
  • 为什么谷歌主页使用 (0, obj.func)(args) 语法?

    有时我盯着google com主页提供的js 发现他们倾向于使用 0 obj func args 句法 以下是脚本的摘录 var function var window this try mb function a return 0 win
  • 直到达到停止值为止的骰子数量

    我正在尝试计算骰子掷出的次数 直到达到明确的停止值 例如 我希望停止值为 100 我正在编写以下代码 sumofsides lt function stopvalue totalsum lt 0 while totalsum lt stop
  • Fabric.js 使用旋转手柄将旋转限制为 x 度

    我正在使用 Fabric js 并尝试使用旋转手柄允许画布上的任何对象旋转 不是自由 360 度 而是一次只能旋转 15 度 我非常努力地搜索 但到目前为止找不到答案 这可能吗 更短的解决方案 canvas on object rotati