UI组件API
AnyCore框架提供了一系列UI交互组件,用于处理DOM元素的交互控制。本章节将详细介绍各个UI组件的使用方法和参数说明。
AnyElementResizer
AnyElementResizer是元素缩放控制器,用于为HTML元素添加8个方向的拖拽缩放功能。
功能特性
- 8方向缩放:支持4个边和4个角的拖拽缩放
- 边界限制:支持最小尺寸和边界距离限制
- 平滑过渡:缩放过程中禁用过渡效果,缩放完成后恢复
- 事件处理:完整的鼠标事件处理机制
构造函数
typescript
constructor(element: HTMLElement)说明:创建元素缩放控制器实例。
参数:
element:需要添加缩放控制的HTML元素
示例:
typescript
const element = document.getElementById('myElement')
const resizer = new AnyElementResizer(element)配置参数
AnyElementResizer支持以下配置参数:
typescript
config = {
minWidth: 400, // 最小宽度(像素)
minHeight: 270, // 最小高度(像素)
minDistanceToClient: 10 // 最小边界距离(像素)
}说明:可以通过修改实例的config属性来自定义配置。
示例:
typescript
const resizer = new AnyElementResizer(element)
resizer.config.minWidth = 300
resizer.config.minHeight = 200缩放控制点
AnyElementResizer会自动为目标元素添加8个控制点:
- 左侧中点 (
w-resize) - 水平缩放 - 右侧中点 (
e-resize) - 水平缩放 - 顶部中点 (
n-resize) - 垂直缩放 - 底部中点 (
s-resize) - 垂直缩放 - 左上角 (
nw-resize) - 对角缩放 - 右上角 (
ne-resize) - 对角缩放 - 左下角 (
sw-resize) - 对角缩放 - 右下角 (
se-resize) - 对角缩放
使用示例
基本用法
typescript
// 获取目标元素
const element = document.getElementById('resizable-element')
// 创建缩放控制器
const resizer = new AnyElementResizer(element)
// 自定义配置
resizer.config.minWidth = 300
resizer.config.minHeight = 200动态启用/禁用
typescript
// 临时移除所有控制点(禁用缩放)
function disableResize() {
const controllers = element.querySelectorAll('div')
controllers.forEach(controller => controller.remove())
}
// 重新创建控制点(启用缩放)
function enableResize() {
// 需要重新创建实例
const resizer = new AnyElementResizer(element)
}注意事项
- 元素定位:目标元素需要使用相对定位或绝对定位
- 过渡效果:缩放过程中会禁用过渡效果,缩放完成后恢复
- 边界约束:缩放会受到浏览器窗口边界的限制
- 性能考虑:频繁的缩放操作可能会影响性能,建议合理使用
兼容性
- 浏览器支持:支持所有现代浏览器(Chrome、Firefox、Safari、Edge)
- 移动端:目前主要针对桌面端设计,移动端支持有限
相关方法
私有方法(内部使用)
createController(cssText: string, listener: EventListener):创建控制点元素startResize(e: MouseEvent):开始缩放操作mousemove(e: MouseEvent):处理鼠标移动mouseup():结束缩放操作
这些方法主要用于内部实现,通常不需要直接调用。