Angular Ripple (リップル) ディレクティブの概要

    Ignite UI for Angular Ripple コンポーネントは、タッチまたはマウス クリックに応答してアニメーションを作成します。

    Angular Ripple の例

    このサンプルが気に入りましたか? 完全な Angular ツールキットにアクセスして、すばやく独自のアプリの作成を開始します。無料でダウンロードできます。

    Ignite UI for Angular Ripple ディレクティブを使用した作業の開始

    Ignite UI for Angular Ripple ディレクティブを使用した作業を開始するには、Ignite UI for Angular をインストールする必要があります。既存の Angular アプリケーションで、以下のコマンドを入力します。

    ng add igniteui-angular
    

    Ignite UI for Angular については、「はじめに」トピックをご覧ください。

    次に、app.module.ts ファイルに IgxRippleModule をインポートします。

    // app.module.ts
    
    import { IgxRippleModule } from 'igniteui-angular';
    // import { IgxRippleModule } from '@infragistics/igniteui-angular'; for licensed package
    
    @NgModule({
        imports: [
            ...
            IgxRippleModule,
            ...
        ]
    })
    export class AppModule {}
    

    あるいは、16.0.0 以降、IgxRippleDirective をスタンドアロンの依存関係としてインポートできます。

    // home.component.ts
    
    import { IgxRippleDirective, IgxButtonDirective } from 'igniteui-angular';
    // import { IgxRippleDirective, IgxButtonDirective } from '@infragistics/igniteui-angular'; for licensed package
    
    @Component({
        selector: 'app-home',
        template: '<button igxButton="contained" igxRipple>Click Me</button>',
        styleUrls: ['home.component.scss'],
        standalone: true,
        imports: [IgxRippleDirective, IgxButtonDirective]
    })
    export class HomeComponent {}
    

    Ignite UI for Angular Ripple モジュールまたはディレクティブをインポートしたので、igxRipple ディレクティブの使用を開始できます。

    Warning

    igxRipple は Web Animation API を使用し、サポートされるブラウザーでネイティブに実行します。その他のブラウザーでは web-animations.min.js ポリフィルを使用します。

    Angular Ripple ディレクティブの使用

    リップル エフェクトの追加

    igxRipple を使用して指定した要素にリップル効果を追加します。

    <button igxButton="contained" igxRipple>Click Me</button>
    

    カスタム色

    igxRipple を使用して、デフォルトのリップル色を簡単に変更できます。

    <button igxButton="contained" igxRipple="white">White</button>
    

    中央揃えのリップル エフェクト

    デフォルトでリップル エフェクトはクリック イベントの位置から開始します。この動作で要素の中点を原点に変更するには、igxRippleCentered プロパティを使用できます。

    <button igxButton="contained" igxRipple="white" [igxRippleCentered]="true">Centered</button>
    

    リップルの期間

    igxRippleDuration プロパティを使用して、リップルアニメーションの期間を変更できます。これは、デフォルトで 600 ミリ秒に設定されています。

    <button igxButton="contained" igxRipple [igxRippleDuration]="2000">Click Me</button>
    

    リップルの対象要素

    igxRippleTarget プロパティを使用して親要素内の特定の要素にリップル エフェクトをアタッチします。

    <div class="parent" igxRipple="white" igxRippleTarget=".child" [igxRippleCentered]="true">
        ...
        <button class="sample-button child" igxButton="contained">Read More</button>
    </div>
    

    親要素または子要素をクリックしても、リップル エフェクトはボタンにのみ表示されます。

    Note

    igxRippleTarget プロパティで対象する子要素は、相対的に配置する必要があります。

    スタイル設定

    はじめに、テーマ エンジンによって公開されている関数を使用するために、スタイル ファイルにすべてのスタイリング機能とミックスインが配置されている index ファイルをインポートする必要があります。

    @use "igniteui-angular/theming" as *;
    
    // 重要: Ignite UI for Angular 13 より前のバージョンは、次を使用してください。
    // @import '~igniteui-angular/lib/core/styles/themes/index';
    

    次に、ripple-theme を拡張し、必要に応じてリップルをカスタマイズするために必要なパラメーターを受け入れる新しいテーマを作成します。

    $custom-ripple-theme: ripple-theme(
      $color: #217346
    );
    

    CSS 変数の使用

    次に Ripple のカスタム テーマを渡します。

    @include css-vars($custom-ripple-theme);
    

    コンポーネント テーマ オーバーライドの使用

    Internet Explorer 11 などの古いブラウザーのコンポーネントをスタイル設定するには、CSS 変数をサポートしていないため、別のアプローチを用いる必要があります。

    コンポーネントが Emulated ViewEncapsulation を使用している場合、::ng-deep を使用してこのカプセル化を解除する必要があります。カスタム テーマが他のコンポーネントに影響しないようにするには、::ng-deep の前に :host セレクターを含めるようにしてください。

    :host {
        ::ng-deep {
            // Custom ripple theme を `igx-ripple` ミックスインに渡します
            @include ripple($custom-ripple-theme);
        }
    }
    
    Note

    igxRiple ディレクティブを使用して設定される色は、カスタム テーマ内で設定される色よりも優先されます。

    Angular Ripple の例

    API リファレンス

    その他のリソース

    コミュニティに参加して新しいアイデアをご提案ください。