变形 - 强大的2D手势
预览

安装
以 npm 软件包
// with npm
npm install @arco-design/transformable
// with yarn
yarn add @arco-design/transformable
快速启动
import TransformAble from '@arco-design/transformable';
function MyComponent() {
const domRef = useRef(null);
const controllerRef = useRef(null);
useEffect(() => {
controllerRef.current = new TransformAble({
dom: this.dom,
onTransform: (state) => {
const { translateX, translateY, scale, transformOrigin } = state;
// DO SOMETHING IF NECESSARY
},
});
}, []);
function resetDom() {
controllerRef.current.zoomTo(1, {
fitEdge: true,
});
}
return (
<div className="transform-container"
style={{ overflow: 'hidden' }}
>
<div
className="transform-demo-object"
ref={domRef}
>
<Button onClick={resetDom}>reset</Button>
</div>
)
}
选项
所有这些选项都可以通过调用来改变动态 .config()
| 名称 | 类型 | 默认 | 撤销 |
|---|---|---|---|
| 活动 | 布尔 | 真实 | 交互式可用状态旗 |
| 最大比例 | 编号 | 2个 | 最大比例限制 |
| 分钟比例 | 编号 | 0.5 (韩语) | 分钟比例限制 |
| 防止滚动 | 布尔 | 真实 | 三相机 e. 预防 |
| 数字 | HTML 元素 | 无效 | 转换交互式目标( m) |
| 使用边界 | 布尔 | 真实 | 决定如何计算目标边界以进行碰撞探测(内缘).true: 使用 dom.getBoundingClientRect 当圆顶被设置时;false: 手动设置 .setBoundary() |
| 弹出 | 编号 | 三百块 | 缩放动画持续时间( 毫秒) |
| 潮湿 | 编号 | 2个 | 以动量为基础的滚动选项, 每个帧的减速, 默认为 2px/ 帧 |
| 反弹RateX | 编号 | 0 个 | 拖出取景口时拖出坝[译出偏移/触取偏移],设置值 (0, 1] 以允许拖出边缘并带起坝效果并反弹动画 |
| 反弹RateX | 编号 | 0 个 | 当拖出(y-轴)视图时拖出( 相同到上方) 拖出( translate difference / touch difference) |
| 动议 阈值 | 编号 | 10个 | 流派动量滚动效应的分钟速度, 默认为 10px/ frame |
| 已固定X | 布尔 | 虚假 | 禁用 x 轴拖曳 |
| 固定 Y | 布尔 | 虚假 | 禁用 y 轴拖曳 |
| 拖动模式 | 字符串 | 疯狂的" | 拖动效果模式 .'always': 允许不缩放而拖放;'hybrid': 仅在缩放时才允许拖放;'none': 不拖动 |
| 刷新模式 | 字符串 | "动画" | 决定如何执行以动能为基础的滚动动画.'animation'页:1 <style> cs 动画触发时的宣告;'transition': 动画触发时使用过渡易用功能 |
| 转换模式 | 字符串 | "翻译第一" | 动画效果在拖放和缩放时可能有所不同.'translate-first': set css 属性 transform 作为 translate()scale()· ;'scale-first'设置 transform 作为 scale()translate()· ;'matrix'设置 transform 作为 matrix() |
| 立方块 | 对象 | { 卷轴:[33, 1,.66, 1], [17、1、17、1], {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢 | 滚动/弹出效果的动因缓和函数(立方体-贝塞尔) |
| 视图 | 对象 | { 左边:0, 右边:屏幕Width, 顶部: 0, 底部: 屏幕高度 {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢 | 相撞探测的视门范围,边缘被定义为视门 qq边界 |