63 lines
1.7 KiB
Java
63 lines
1.7 KiB
Java
Component({
|
|
externalClasses: ['i-class'],
|
|
properties : {
|
|
scrollTop : {
|
|
type : Number,
|
|
observer(val){
|
|
this._updateScrollTopChange();
|
|
}
|
|
}
|
|
},
|
|
relations : {
|
|
'../sticky-item/index' : {
|
|
type : 'child',
|
|
linked(){
|
|
this._updateDataChange();
|
|
},
|
|
linkChanged () {
|
|
this._updateDataChange();
|
|
},
|
|
unlinked () {
|
|
this._updateDataChange();
|
|
}
|
|
}
|
|
},
|
|
data : {
|
|
timer : null,
|
|
itemLength : 0,
|
|
},
|
|
methods : {
|
|
_updateScrollTopChange(){
|
|
const stickies = this.getRelationNodes('../sticky-item/index');
|
|
if( stickies.length > 0 ){
|
|
stickies.forEach((item) => {
|
|
if( item ){
|
|
item.updateScrollTopChange( this.data.scrollTop );
|
|
}
|
|
})
|
|
}
|
|
},
|
|
_updateDataChange( ){
|
|
const stickies = this.getRelationNodes('../sticky-item/index');
|
|
if( stickies.length > 0 ){
|
|
if( this.data.timer ){
|
|
clearTimeout( this.data.timer )
|
|
this.setData({
|
|
timer : null
|
|
})
|
|
}
|
|
this.data.timer = setTimeout(()=>{
|
|
stickies.forEach((item,index) => {
|
|
if( item ){
|
|
item.updateDataChange(index);
|
|
}
|
|
})
|
|
},0)
|
|
this.setData({
|
|
timer : this.data.timer
|
|
})
|
|
}
|
|
}
|
|
}
|
|
|
|
}) |