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