如何为离子2元素添加涟漪效应?

时间:2016-08-03 16:18:33

标签: material-design ionic2

某些元素,如按钮,对Ionic 2有原生的连锁反应。其他像卡片一样没有。如何在任意Ionic 2元素上添加对涟漪效应的支持?

5 个答案:

答案 0 :(得分:9)

尝试包装内容如下:

<button ion-item>
   <ion-item style="background: rgba(0,0,0,0);">Content</ion-item>
</button>

答案 1 :(得分:6)

正如我从Ionic v3.3的来源看到的那样,容器元素必须包含带有div类的空button-effect元素,容器必须具有tappable属性并且样式为position: relative; overflow: hidden

在我的项目中,我使用以下指令来设置类似按钮的容器:

import {Directive, ElementRef, Host, Renderer2} from '@angular/core';

@Directive({
    selector: '[m-ripple-effect]',
    host: {
        'tappable': '',
        'role': 'button',
        'style': 'position: relative; overflow: hidden'
    }
})
export class RippleEffectDirective {
    constructor(@Host() host: ElementRef, renderer: Renderer2) {
        const div = renderer.createElement('div');
        renderer.addClass(div, 'button-effect');
        renderer.appendChild(host.nativeElement, div);
    }
}

答案 2 :(得分:3)

您需要使用button元素 你仍然可以使用ion-item指令:

自:

<ion-item (click)="viewArticle()"></ion-item>

要:

<button ion-item (click)="viewArticle()"></button>

答案 3 :(得分:1)

基于Bartosz Kosarzycki答案的更完整的例子:

                <ion-list>
                      <button ion-button style="height: auto!important;width: 100%" clear >
                            <ion-item style="background: rgba(0,0,0,0);">
                                  <ion-icon name="car" item-left></ion-icon>
                                  <h1>Title 1</h1>
                                  <p>Subtítulo</p>
                                  <ion-icon name="person" item-right></ion-icon>
                            </ion-item>
                      </button>
                      <button ion-button style="height: auto!important;width: 100%" clear>
                            <ion-item style="background: rgba(0,0,0,0);">
                                  <ion-icon name="person" item-left></ion-icon>
                                  <h1>Title 2</h1>
                                  <p>Subtítulo</p>
                                  <ion-icon name="car" item-right></ion-icon>
                            </ion-item>
                      </button>
                </ion-list>

答案 4 :(得分:0)

对于IONIC 4,您现在可以像这样使用:

确保div位置是相对的。

 <div
  ion-activatable
  class="ion-activatable"
  style="position:relative;height:100px;width:100%;background:blue;">
  <ion-ripple-effect></ion-ripple-effect>
  Content here...
</div>

:)