CropperElement
CropperElement 接口代表任何 Cropper 元素,扩展了 HTMLElement 接口。
规格
- 公共属性的名称应以字母字符开头。
- 私有属性的名称应该以
$开头。 - 公共/私有自定义方法的名称应以
$开头。 - 私有自定义侦听器的名称应以
$on开头。
示例
js
import { CropperElement } from 'cropperjs';
// Or
// import CropperElement from '@cropper/element';
class MyCropperElement extends CropperElement {
myStringProperty = '';
myNumberProperty = NaN;
myBooleanProperty = false;
static get observedAttributes() {
return super.observedAttributes.concat([
'my-boolean-property',
'my-number-property',
'my-string-property',
]);
}
// ...
}
MyCropperElement.$define();html
<my-cropper-element my-string-property="foo" my-number-property="1" my-boolean-property></my-cropper-element>属性
从其父级 HTMLElement 继承属性,并实现以下属性:
| 名称 | 类型 | 默认值 | 可选值 | 描述 |
|---|---|---|---|---|
| shadowRootMode | string | "open" | "closed" | "open" | 指示 shadow DOM 树的封装模式。 |
| slottable | boolean | true | - | 指示此元素是否启用默认插槽,即包含 <slot> 元素。 |
| themeColor | string | - | - | 指示此元素及其子元素的颜色。 |
方法
$getShadowRoot
- 语法:
$getShadowRoot() - 返回值:
- 类型:
ShadowRoot - shadow root。
- 类型:
输出元素的 shadow root,即使它的模式是 "closed"。
$addStyles
语法:
$addStyles(styles)参数:
styles:- 类型:
string - 要添加的样式。
- 类型:
返回值:
- 类型:
CSSStyleSheet | HTMLStyleElement - 生成的样式表。
- 类型:
示例:
jsconst canvas = new CropperCanvas(); canvas.$addStyles(` :host { border: 1px solid #39f; } `);
将样式添加到 shadow root。
$emit
语法:
$emit(type)$emit(type, detail)$emit(type, detail, options)
参数:
type:- 类型:
string - 事件的名称。
- 类型:
detail:- 类型:
* - 默认值:
undefined - 初始化事件时传递的数据。
- 类型:
options:- 类型:
CustomEventInit - 默认值:
{ bubbles:true, cancelable: true, composed: true } - 其他事件选项。
- 类型:
返回值:
- 类型:
boolean - 结果值。
- 类型:
示例:
jsconst selection = new CropperSelection(); selection.$emit('change', { x: 10, y: 5, width: 160, height: 90, });
在当前元素上派发事件。
$nextTick
- 语法:
$nextTick()$nextTick(callback)
- 参数:
callback:- 类型:
Function - 在下一个 DOM 更新周期后执行的回调。
- 类型:
- 返回值:
- 类型:
Promise - 一个以
undefined为给定值解析后的 Promise 对象。
- 类型:
推迟到下一个 DOM 更新周期后执行的回调。
静态属性
| 名称 | 类型 | 描述 |
|---|---|---|
| $name | string | 自定义元素的名称。 |
| $version | string | 安装包的版本。 |
静态方法
$define
将构造函数定义为新的自定义元素。这只是调用 CustomElementRegistry.define() 的快捷方式。
语法:
$define()$define(name)$define(options)$define(name, options)
等同于:
customElements.define(name, constructor)customElements.define(name, constructor, options)
参数:
name:- 类型:
string - 元素名称。默认为构造函数的
$name静态属性。
- 类型:
options:- 类型:
Object - 元素定义选项。
- 类型:
示例:
js// 定义为自主自定义元素:`<my-cropper-element></my-cropper-element>`. CropperElement.$define('my-cropper-element');