Rol*_*ndo 7 angular-material angular
我在有角材质中使用了tabs组件:https : //material.angular.io/components/component/tabs
有没有一种方法可以使我可以在选项卡的内容区域上滑动以触发移动到下一个选项卡?
我当前的模板html:
<md-tab-group>
<md-tab label="Tab 1">Content 1</md-tab>
<md-tab label="Tab 2">Content 2</md-tab>
</md-tab-group>
Run Code Online (Sandbox Code Playgroud)
我已经导入了Hammerjs,即使我发誓我以前也曾经看过类似的东西,但文档似乎没有提及任何内容。
具体来说,我希望能够向左单击并拖动鼠标,以使其向左滑动到左侧选项卡。然后向右点击并拖动鼠标,使其向右滑动至右选项卡。
这是一种简单的方法:
可以使用的插件:https ://plnkr.co/edit/uJ3n8XedvCCdeUHXKpwX ? p = preview
首先,将Hammerjs添加到您的模块中:
import { HammerGestureConfig, HAMMER_GESTURE_CONFIG } from '@angular/platform-browser';
提供它 providers
providers: [{
provide: HAMMER_GESTURE_CONFIG,
useClass: HammerGestureConfig
}]
Run Code Online (Sandbox Code Playgroud)
示例模块:
@NgModule({
imports: [
BrowserModule,
BrowserAnimationsModule,
FormsModule,
ReactiveFormsModule,
MaterialModule,
],
declarations: [TabsOverviewExample],
bootstrap: [TabsOverviewExample],
providers: [{
provide: HAMMER_GESTURE_CONFIG,
useClass: HammerGestureConfig
}]
})
export class PlunkerAppModule {}
Run Code Online (Sandbox Code Playgroud)
然后像这样构建您的组件:
import {Component, AfterViewInit, ViewChild, ViewChildren} from '@angular/core';
import { MdTabGroup, MdTab } from '@angular/material';
@Component({
selector: 'tabs-overview-example',
template:`
<md-tab-group [selectedIndex]="selected" (swipeleft)="swipe($event.type)" (swiperight)="swipe($event.type)">
<md-tab label="Tab 1"><div class="content">Content 1</div></md-tab>
<md-tab label="Tab 2"><div class="content">Content 2</div></md-tab>
<md-tab label="Tab 3"><div class="content">Content 3</div></md-tab>
<md-tab label="Tab 4"><div class="content">Content 4</div></md-tab>
<md-tab label="Tab 5"><div class="content">Content 5</div></md-tab>
</md-tab-group>`,
styles:['.content{ height: 500px; background-color: yellow;}']
})
export class TabsOverviewExample implements AfterViewInit{
@ViewChild(MdTabGroup) group;
@ViewChildren(MdTab) tabs;
tab_num = 0;
selected = 0;
SWIPE_ACTION = { LEFT: 'swipeleft', RIGHT: 'swiperight' };
number_tabs
ngAfterViewInit(){
this.tab_num = this.tabs.length
console.log(this.group)
}
swipe(eType){
console.log(eType);
if(eType === this.SWIPE_ACTION.LEFT && this.selected > 0){
console.log("movin left")
this.selected--;
}
else if(eType === this.SWIPE_ACTION.RIGHT && this.selected < this.tab_num){
console.log("movin right")
this.selected++;
}
console.log(this.selected)
}
}
Run Code Online (Sandbox Code Playgroud)