54 lines
1.4 KiB
JavaScript
54 lines
1.4 KiB
JavaScript
/**
|
|
* coolui-scroller组件的api使用
|
|
* 提供wx.createScrollContext进行管理功能
|
|
*/
|
|
function observePage(pageIndex, that) {
|
|
wx.getSystemInfoAsync({
|
|
success: (res) => {
|
|
const { windowHeight } = res
|
|
// this.windowHeight = windowHeight
|
|
const observerObj = wx
|
|
.createIntersectionObserver(that)
|
|
.relativeToViewport({
|
|
top: 2 * windowHeight,
|
|
bottom: 2 * windowHeight,
|
|
})
|
|
observerObj.observe(`#wrp_${pageIndex}`, (res) => {
|
|
if (res.intersectionRatio <= 0) {
|
|
try {
|
|
that.setData({
|
|
['list[' + pageIndex + ']']: [
|
|
{
|
|
height: that.pageHeightArr[pageIndex],
|
|
},
|
|
],
|
|
})
|
|
} catch (error) {
|
|
console.log(error)
|
|
}
|
|
} else {
|
|
try {
|
|
that.setData({
|
|
['list[' + pageIndex + ']']: that.wholeList[pageIndex],
|
|
})
|
|
} catch (error) {
|
|
console.log(error)
|
|
}
|
|
}
|
|
})
|
|
},
|
|
})
|
|
}
|
|
|
|
function setHeight(that) {
|
|
const page = that.param.page
|
|
this.query = wx.createSelectorQuery()
|
|
this.query.select(`#wrp_${page}`).boundingClientRect()
|
|
this.query.exec(function (res) {
|
|
that.pageHeightArr[page] = res[0] && res[0].height
|
|
})
|
|
observePage(page, that)
|
|
}
|
|
|
|
module.exports.setHeight = setHeight
|