类似的效果如下图:

1. 生成一个component

  1. ionic g component MySlide

2. 在my-slide.html中添加代码:

  1. <ion-slides class="slide-title" [options]="mySlideOptions">
  2. <ion-slide *ngFor="let slide of slides; let i = index;">
  3. <div (click)="onClick(i)">
  4. <span class="slide-title-unit" [ngClass]="{'slide-title-active': selectedIndex == i}">{{slide}}</span>
  5. </div>
  6. </ion-slide>
  7. </ion-slides>

其中slides是一个数组,存放类型字符串,如上图显示的"推荐", "环球"等

3. 在my-slide.ts中添加代码:

  1. import {Component, Input, Output, EventEmitter} from '@angular/core';
  2. @Component({
  3. selector: 'my-slide',
  4. templateUrl: 'build/components/my-slide/my-slide.html'
  5. })
  6. export class MySlide {
  7. @Input("slides") slides: string[] = [];
  8. @Input("pageNumber") pageNumber: number = 5;
  9. @Output("slideClick") slideClick = new EventEmitter<number>();
  10. mySlideOptions;
  11. selectedIndex: number = 0;
  12. constructor() {
  13. }
  14. ngOnInit() {
  15. this.mySlideOptions = {
  16. loop: false,
  17. autoplay: false,
  18. initialSlide: 0,
  19. pager: false,
  20. slidesPerView: this.pageNumber,
  21. paginationHide: true,
  22. paginationClickable: true
  23. };
  24. }
  25. onClick(index) {
  26. this.selectedIndex = index;
  27. this.slideClick.emit(index);
  28. }
  29. }

Input参数slides,my-slide的属性传入,显示类型的字符串数组。

Input参数pageNumber,my-slide的属性传入,表示当前屏幕可以显示的类型数目,默认为5。

Output参数slideClick,当点击某个类型时,将点击的index返回给使用者。

4. my-slide.scss

  1. $slide-height-small: 40px;
  2. $slide-height-large: 50px;
  3. .slide-title {
  4. width: 100%;
  5. height: $slide-height-small;
  6. color: #666666;
  7. padding: 0;
  8. }
  9. .slide-title-unit {
  10. padding-bottom: 8px;
  11. font-size: 14px;
  12. height: $slide-height-small;
  13. line-height: $slide-height-small;
  14. }
  15. .slide-title-active {
  16. color: map_get($colors, primary);
  17. border-bottom: 3px solid map_get($colors, primary);
  18. }

其中slide-title-active表示选中时改变类型文字颜色以及下方显示横线。

5. 使用方法:

  1. <my-slide (slideClick)="onSlideClick($event)" [slides]="pageSlides" [pageNumber]="7"></my-slide>

最后,不要忘记在@Component中添加directives: [MySlide]

ionic2 使用slides制作滑动效果的类型选择栏的更多相关文章

  1. Android 滑动效果入门篇(二)—— Gallery

    Gallery 是Android官方提供的一个View容器类,继承于AbsSpinner类,用于实现页面滑动效果. 从上面的继承关系可以看出,AbsSpinner类继承自AdapterView,因此我 ...

  2. 使用jQuery的animate方法制作滑动菜单

    周末看Ziv小威的博客<制作滑动条菜单,如何延时处理滑动效果,避免动画卡顿>,参见地址:http://www.cnblogs.com/zivxiaowei/p/3462964.html.是 ...

  3. Android Scroll分析——滑动效果产生

    相对于在Android2.x版本上出现的长按.点击事件的效果,不得不说,滑动操作具有更好的用户体验.因此,从Android 4.X版本开始,出现了更多滑动操作的效果.越来越多第三方应用模仿这样的效果, ...

  4. Unity3d NGUI的使用(九)(UIScrollView制作滑动列表)

    UIScrollView制作滑动列表,可横向,竖直展示一些列表在固定可视范围内 UIScrollVIew只是一个可滑动的UI组件 如果需要制作复杂的可视区域UI需要配合使用UIPanel与UIGrid ...

  5. Android实现左右滑动效果

    本示例演示在Android中实现图片左右滑动效果.   关于滑动效果,在Android中用得比较多,本示例实现的滑动效果是使用ViewFlipper来实现的,当然也可以使用其它的View来实现.接下来 ...

  6. Android 实现左右滑动效果ViewFlipper终结【转】

    本示例演示在Android中实现图片左右滑动效果.   关于滑动效果,在Android中用得比较多,本示例实现的滑动效果是使用ViewFlipper来实现的,当然也可以使用其它的View来实现.接下来 ...

  7. 利用CSS制作图形效果

    前言 关于如何使用CSS来制作图形,比如说圆形,半圆形,三角形等的相关教程还是挺多的,今天我主要想解释一下里面一些demo的实现原理,话不多说,开始吧   以下所有内容只使用一个HTML元素.任何类型 ...

  8. a 锚点跳转滑动效果

    点击a链接时,跳转到相应id的位置处,有一个滑动效果. <a href="#my">我是跳转到div</a><div id="my" ...

  9. jquery左右滑动效果的实现

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

随机推荐

  1. 题解 CF656G 【You're a Professional】

    又是一道假黑题 它教会我们不要看难度标签 虽然这道题的数据范围很小,用cin能过,但我还是要讲一下快读 快读嘛,顾名思义,就是 快速读入 的意思 有同学就会问了,快速读入的原理是什么? 答:它的原理其 ...

  2. 完结篇OO总结

    目录 前言 一.第四单元两次架构设计 二.架构设计及OO方法理解的演进 三.测试理解与实践的演进 四.课程收获 五.改进建议 前言 持续了17周的OO终于走向了尾声,想想寒假的时候连类都不知道是什么, ...

  3. java常用 开源

    http://sourceforge.nethttp://code.google.com/hosting/http://www.open-open.com/code/tags/Javahttp://w ...

  4. linux apache 不解析php文件显示源码

    首先检查是否安装PHP 没有的话就先安装 如果安装过 在/etc/httpd/conf/httpd.conf文件中 在<IfModule mime_module>里面 AddType ap ...

  5. java基础面试题:写clone()方法时,通常都有一行代码,是什么?

    clone()方法 与new constructor()构造器创建对象不同 是克隆一个新的对象 package com.swift; public class Clone_Test { public ...

  6. java链接MySQL数据库时使用com.mysql.jdbc.Connection的包会出红线问题 java.lang.ClassNotFoundException: com.mysql.jdbc.Driver问题

    package com.swift; //这里导入的包是java.sql.Connection而不是com.mysql.jdbc.Connection import java.sql.Connecti ...

  7. SummerVocation_Learning--StringBuffer类

    java.lang.StringBuffer代表可变的字符序列.与String类基本类似. 常见的构造方法: StringBuffer(),创建一个不包含字符序列的空的StringBuffer对象. ...

  8. 两个list缩进为一个list,python

    # w_list = ['a', 'b', 'c', 'd'] # e_list = ['c', 'd', 'b', 'a'] w_list = ['a', 'b', 'c', 'd', 'ff', ...

  9. 三十四、MySQL 函数

    MySQL 函数 MySQL 有很多内置的函数,以下列出了这些函数的说明. MySQL 字符串函数 函数 描述 实例 ASCII(s) 返回字符串 s 的第一个字符的 ASCII 码. 返回 Cust ...

  10. PHP实现消息推送

    我们做web的时候偶尔会遇到消息推送,如图示例(红框位置) 当我们遇到这种功能要如何开发呢?下边将我了解的两种方法整理一下: 一.ajax轮询,定时去请求服务器数据 通过观察thinkphp官网貌似也 ...