forked from CIT/Vmeda.Online
		
	MOBILE-2455 tabs: Slide to selected tab if needed
This commit is contained in:
		
							parent
							
								
									4f636824e3
								
							
						
					
					
						commit
						f2a6a2fb10
					
				| @ -70,6 +70,8 @@ export class CoreTabsComponent implements OnInit, AfterViewInit, OnChanges, OnDe | |||||||
|     protected resizeFunction; |     protected resizeFunction; | ||||||
|     protected isDestroyed = false; |     protected isDestroyed = false; | ||||||
|     protected isCurrentView = true; |     protected isCurrentView = true; | ||||||
|  |     protected shouldSlideToInitial = false; // Whether we need to slide to the initial slide because it's out of view.
 | ||||||
|  |     protected hasSliddenToInitial = false; // Whether we've already slidden to the initial slide or there was no need.
 | ||||||
| 
 | 
 | ||||||
|     constructor(element: ElementRef, protected content: Content, protected domUtils: CoreDomUtilsProvider) { |     constructor(element: ElementRef, protected content: Content, protected domUtils: CoreDomUtilsProvider) { | ||||||
|         this.tabBarElement = element.nativeElement; |         this.tabBarElement = element.nativeElement; | ||||||
| @ -265,6 +267,11 @@ export class CoreTabsComponent implements OnInit, AfterViewInit, OnChanges, OnDe | |||||||
|             this.showPrevButton = false; |             this.showPrevButton = false; | ||||||
|             this.showNextButton = this.numTabsShown > this.slidesShown; |             this.showNextButton = this.numTabsShown > this.slidesShown; | ||||||
|         } |         } | ||||||
|  | 
 | ||||||
|  |         if (this.shouldSlideToInitial && currentIndex != this.selected) { | ||||||
|  |             // Current tab has changed, don't slide to initial anymore.
 | ||||||
|  |             this.shouldSlideToInitial = false; | ||||||
|  |         } | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     /** |     /** | ||||||
| @ -282,6 +289,20 @@ export class CoreTabsComponent implements OnInit, AfterViewInit, OnChanges, OnDe | |||||||
|         setTimeout(() => { |         setTimeout(() => { | ||||||
|             this.slides.update(); |             this.slides.update(); | ||||||
|             this.slides.resize(); |             this.slides.resize(); | ||||||
|  | 
 | ||||||
|  |             if (!this.hasSliddenToInitial && this.selected && this.selected >= this.slidesShown) { | ||||||
|  |                 this.hasSliddenToInitial = true; | ||||||
|  |                 this.shouldSlideToInitial = true; | ||||||
|  | 
 | ||||||
|  |                 setTimeout(() => { | ||||||
|  |                     if (this.shouldSlideToInitial) { | ||||||
|  |                         this.slides.slideTo(this.selected, 0); | ||||||
|  |                         this.shouldSlideToInitial = false; | ||||||
|  |                     } | ||||||
|  |                 }, 400); | ||||||
|  |             } else if (this.selected) { | ||||||
|  |                 this.hasSliddenToInitial = true; | ||||||
|  |             } | ||||||
|         }); |         }); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user