23 lines
850 B
TypeScript
23 lines
850 B
TypeScript
/**
|
||
* @description 获取元素节点信息(在组件中的元素必须要传ctx)
|
||
* @param { String } selector 选择器 '.app' | '#app'
|
||
* @param { Boolean } all 是否多选
|
||
* @param { ctx } context 当前组件实例
|
||
*/
|
||
export const getRect = (selector: string, all: boolean = false, context?: any) => {
|
||
return new Promise((resolve, reject) => {
|
||
let qurey = uni.createSelectorQuery()
|
||
if (context) {
|
||
qurey = uni.createSelectorQuery().in(context)
|
||
}
|
||
qurey[all ? 'selectAll' : 'select'](selector).boundingClientRect(function(rect) {
|
||
if (all && Array.isArray(rect) && rect.length) {
|
||
return resolve(rect)
|
||
}
|
||
if (!all && rect) {
|
||
return resolve(rect)
|
||
}
|
||
reject('找不到元素')
|
||
}).exec()
|
||
})
|
||
} |