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()
|
|||
|
|
})
|
|||
|
|
}
|