40 lines
1.1 KiB
JavaScript
40 lines
1.1 KiB
JavaScript
Component({
|
|
externalClasses: ['i-class'],
|
|
options: {
|
|
multipleSlots: true
|
|
},
|
|
relations : {
|
|
'../sticky/index' : {
|
|
type : 'parent'
|
|
}
|
|
},
|
|
data : {
|
|
top : 0,
|
|
height : 0,
|
|
isFixed : false,
|
|
index : -1,
|
|
},
|
|
methods: {
|
|
updateScrollTopChange(scrollTop){
|
|
const data = this.data;
|
|
const top = data.top;
|
|
const height = data.height;
|
|
this.setData({
|
|
isFixed : ( scrollTop >= top && scrollTop < top + height ) ? true : false
|
|
})
|
|
},
|
|
updateDataChange(index) {
|
|
const className = '.i-sticky-item';
|
|
const query = wx.createSelectorQuery().in(this);
|
|
query.select( className ).boundingClientRect((res)=>{
|
|
if( res ){
|
|
this.setData({
|
|
top : res.top,
|
|
height : res.height,
|
|
index : index
|
|
})
|
|
}
|
|
}).exec()
|
|
}
|
|
}
|
|
}) |