スポンサー
Support Framework7

アクティブステート

    Framework7では、リンクやボタンをタップするとハイライトされる、いわゆる「アクティブステート」を使用しています。これは、Framework7アプリをWebアプリのようにではなく、ネイティブアプリのように動作させるために行われます。

    これは、CSSの :active セレクタとほぼ同じように動作し、リンクやボタンをタップしたときに active-state クラスを追加します。唯一の違いは、このクラスがわずかな時間の後に追加されることで、ページスクロール中の誤ったハイライトを防ぎます。

    そのため、CSSスタイルを記述する際には、アクティブステートを以下のように記述する必要があります。

    /* Usual state */
    .my-button {
        color: red;
    }
    /* Active/tapped state */
    .my-button.active-state {
        color: blue;
    }

    どの要素がactive-stateクラスを受け取るかは、touch.activeStateElements app parametersで制御できます。

    active-stateの要素が入れ子になっている場合もあるでしょう。子のactive-state要素にprevent-active-state-propagationクラスを追加することで、親要素にactive-stateが設定されるのを防ぐことができます。

    <div class="card card-expandable">
      <div class="card-content">
        <!-- ボタンをタップすると、親カードにactive-stateが設定されなくなります。 -->
        <a class="button prevent-active-state-propagation">...</a>
      </div>
    </div>

    要素自体(およびその子)にactive-stateクラスを設定しないようにするには、そのような要素にno-active-stateクラスを追加する必要があります。

    <!-- active-stateのないリンク -->
    <a href="..." class="link no-active-state">...</a>