如何在面料js的角落启用非均匀缩放
How to enable non-uniform scaling at corners on fabric js
如果你使用中上、中左等控制点,则可以在该轴上缩放对象。但如果你使用角,那么对象总是均匀缩放的。是否有一种方法可以禁用角落控制点上的均匀/比例缩放?
解决方法是在fabric.Canvas
实例上将uniScaleTransform
设置为true
。它在Fabric.js文档中绝对不明显,只在第4部分的介绍对象转换一节
自1.0版以来,Fabric 中还有许多其他与转换相关的属性可用。其中之一是"uniScaleTransform"。默认为false
,可用于实现对象的非均匀缩放;换句话说,它允许在拖动边角时改变对象的比例。
您可以在实例化期间设置标志:
var fabric = new fabric.Canvas(canvasEl, {
// ...
uniScaleTransform: true
});
或稍后更改:
fabric.uniScaleTransform = true;
自fabric.js v1.1.9
之后的lockUniScaling
标记被忽略。
相关源代码:
_onScale: function(e, transform, x, y) {
// rotate object only if shift key is not pressed
// and if it is not a group we are transforming
if ((e.shiftKey || this.uniScaleTransform) && !transform.target.get('lockUniScaling')) {
transform.currentAction = 'scale';
this._scaleObject(x, y);
}
else {
// Switch from a normal resize to proportional
if (!transform.reset && transform.currentAction === 'scale') {
this._resetCurrentTransform(e, transform.target);
}
transform.currentAction = 'scaleEqually';
this._scaleObject(x, y, 'equally');
}
},
相关文章:
- 更改高贴图的缩放级别
- 在不阻止默认行为的情况下检测IE10中的缩放
- 单击超链接时,如何使用Google Maps API v3缩放地图
- 缩放Raphael/SVG容器以适应所有内容
- 传单缩放控制位置错误
- 在不移动内部文本的情况下缩放元素的效果
- 调整缩放窗口高度提升缩放
- 计算CSS3缩放框在另一个框中的最高位置
- D3.JS向rect添加缩放和列表项
- 在iOS上使用iScroll.js时启用缩放功能
- 如何重新启用禁用的谷歌地图v3拖放、缩放等
- 在D3中,如何仅对特定路径启用缩放
- 在Trigger.io移动应用程序中启用缩放
- 在 jquery 移动版上启用缩放效果
- 如何在启用缩放的情况下使用Highcharts触发模式视图
- 如何在面料js的角落启用非均匀缩放
- Cordova:如何启用视口缩放
- D3如何在启用平移/缩放的情况下居中元素
- 使用Google Maps API在点击地图时启用滚动轮缩放
- 文本框启用缩放 Y