ionic2 使用slides制作滑动效果的类型选择栏
2024-08-25 12:39:43
类似的效果如下图:
1. 生成一个component
- ionic g component MySlide
2. 在my-slide.html中添加代码:
- <ion-slides class="slide-title" [options]="mySlideOptions">
- <ion-slide *ngFor="let slide of slides; let i = index;">
- <div (click)="onClick(i)">
- <span class="slide-title-unit" [ngClass]="{'slide-title-active': selectedIndex == i}">{{slide}}</span>
- </div>
- </ion-slide>
- </ion-slides>
其中slides是一个数组,存放类型字符串,如上图显示的"推荐", "环球"等
3. 在my-slide.ts中添加代码:
- import {Component, Input, Output, EventEmitter} from '@angular/core';
- @Component({
- selector: 'my-slide',
- templateUrl: 'build/components/my-slide/my-slide.html'
- })
- export class MySlide {
- @Input("slides") slides: string[] = [];
- @Input("pageNumber") pageNumber: number = 5;
- @Output("slideClick") slideClick = new EventEmitter<number>();
- mySlideOptions;
- selectedIndex: number = 0;
- constructor() {
- }
- ngOnInit() {
- this.mySlideOptions = {
- loop: false,
- autoplay: false,
- initialSlide: 0,
- pager: false,
- slidesPerView: this.pageNumber,
- paginationHide: true,
- paginationClickable: true
- };
- }
- onClick(index) {
- this.selectedIndex = index;
- this.slideClick.emit(index);
- }
- }
Input参数slides,my-slide的属性传入,显示类型的字符串数组。
Input参数pageNumber,my-slide的属性传入,表示当前屏幕可以显示的类型数目,默认为5。
Output参数slideClick,当点击某个类型时,将点击的index返回给使用者。
4. my-slide.scss
- $slide-height-small: 40px;
- $slide-height-large: 50px;
- .slide-title {
- width: 100%;
- height: $slide-height-small;
- color: #666666;
- padding: 0;
- }
- .slide-title-unit {
- padding-bottom: 8px;
- font-size: 14px;
- height: $slide-height-small;
- line-height: $slide-height-small;
- }
- .slide-title-active {
- color: map_get($colors, primary);
- border-bottom: 3px solid map_get($colors, primary);
- }
其中slide-title-active表示选中时改变类型文字颜色以及下方显示横线。
5. 使用方法:
- <my-slide (slideClick)="onSlideClick($event)" [slides]="pageSlides" [pageNumber]="7"></my-slide>
最后,不要忘记在@Component中添加directives: [MySlide]
最新文章
- adb shell出错“error: unknown host service”
- Mac 安装终端软件
- ch2-4:遇到嵌套列表进行缩进打印
- Could not load oracle/sql/converter_xcharset/lx20354.glb.
- beanutils中jdbc
- sql连接查询 2011-10-10 23:13 (QQ空间)
- html基础及心得
- iOS 推送问题全解答《十万个为啥吖?》
- Asp.Net Web APi 路由的特点
- Mysql常用命令()
- 第二次spring会议
- What does ";exceeded limit of maxWarmingSearchers=X"; mean?
- 7.7 服务远程暴露 - 订阅与通知(TODO)
- 关于javascript的cookie的封装
- hadoop fs -put localfile . 时出现如下错误: could only be replicated to 0 nodes, instead of 1
- lintcode-422-最后一个单词的长度
- BZOJ1010:[HNOI2008]玩具装箱——题解
- C语言结构体数组内带字符数组初始化和赋值
- Asp.net Core 启动流程分析
- 在DOS界面下快速进入目录的技巧
热门文章
- python_23_tuple
- C# 目录下的文件操作
- Java连接MySQL数据库实现用户名密码的验证方法 Java语句中sql查询语句&#39;&#39; ";";作用
- ORA-04031: Unable To Allocate 32 Bytes Of Shared Memory
- 基于django的个人博客网站建立(一)
- python3 练习题100例 (七)
- python os模块进程函数
- C++ 11 从C++ primer第五版的学习笔记
- codeforce830A. Office Keys
- loj2035 「SDOI2016」征途