You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
50 lines
1.3 KiB
50 lines
1.3 KiB
class NodeUtil {
|
|
/**
|
|
* 获取组件内部节点位置信息(单个)
|
|
* @param component 组件实例
|
|
* @param selector {String} css选择器
|
|
* @returns boundingClientRect() 回调函数的值
|
|
*/
|
|
async getNodeRectFromComponent(component, selector) {
|
|
return await new Promise((resolve) => {
|
|
component
|
|
.createSelectorQuery()
|
|
.select(selector)
|
|
.boundingClientRect((res) => {
|
|
resolve(res);
|
|
}).exec();
|
|
});
|
|
}
|
|
|
|
/**
|
|
* 获取组件内部节点位置信息(多个)
|
|
* @param component 组件实例
|
|
* @param selector {String} css选择器
|
|
* @returns boundingClientRect() 回调函数的值
|
|
*/
|
|
async getNodesRectFromComponent(component, selector) {
|
|
return await new Promise((resolve) => {
|
|
component
|
|
.createSelectorQuery()
|
|
.selectAll(selector)
|
|
.boundingClientRect((res) => {
|
|
resolve(res);
|
|
}).exec();
|
|
});
|
|
}
|
|
|
|
async getNodeFieldsFromComponent(component, selector, fields) {
|
|
return await new Promise((resolve) => {
|
|
component
|
|
.createSelectorQuery()
|
|
.select(selector)
|
|
.fields(fields, (res) => {
|
|
resolve(res);
|
|
}).exec();
|
|
});
|
|
}
|
|
}
|
|
|
|
const nodeUtil = new NodeUtil();
|
|
export default nodeUtil;
|