スタイルクラス

StyleClass は、要素のクラスを切り替えるため、または開始/終了アニメーション中に、CSSクラスを宣言的に管理します。


import StyleClass from 'primevue/styleclass';

app.directive('styleclass', StyleClass);

StyleClassには、クラスを追加・削除するだけのtoggleClassと、開始/終了アニメーションの2つのモードがあります。


<Button v-styleclass="{ selector: '@next', toggleClass: 'p-disabled' }" label="Toggle p-disabled" />
<InputText />

開始および終了アニメーション中に適用するクラスは、enterFromClassenterActiveClassenterToClassleaveFromClassleaveActiveClassleaveToClassプロパティを使用して指定します。さらに、ターゲットがオーバーレイの場合、ポップアップの外側がクリックされた場合にターゲットを非表示にするために、hideOnOutsideClickが役立ちます。

最初の例ではカスタムフェードアニメーションを使用し、2番目の例ではtailwind-primeuiプラグインのanimate-slideを使用しています。

カスタム

<div class="card flex items-center justify-center gap-8">
    <div class="flex flex-col items-center">
        <div>
            <Button v-styleclass="{ selector: '.box1', enterFromClass: 'my-hidden', enterActiveClass: 'my-fadein' }" label="FadeIn" class="mr-2" />
            <Button v-styleclass="{ selector: '.box1', leaveActiveClass: 'my-fadeout', leaveToClass: 'my-hidden' }" label="FadeOut" severity="secondary" />
        </div>
        <div class="h-32">
            <div class="my-hidden animate-duration-500 box1">
                <div class="flex bg-primary text-primary-contrast items-center justify-center py-4 rounded-md mt-4 font-bold w-32 h-32">Custom</div>
            </div>
        </div>
    </div>
    <div class="flex flex-col items-center">
        <div>
            <Button v-styleclass="{ selector: '.box2', enterFromClass: 'hidden', enterActiveClass: 'animate-slidedown' }" label="SlideDown" class="mr-2" />
            <Button v-styleclass="{ selector: '.box2', leaveActiveClass: 'animate-slideup', leaveToClass: 'hidden' }" label="SlideUp" severity="secondary" />
        </div>
        <div class="h-32">
            <div class="hidden animate-duration-500 box2 overflow-hidden">
                <div class="flex bg-primary text-primary-contrast items-center justify-center py-4 rounded-md mt-4 font-bold w-32 h-32">Content</div>
            </div>
        </div>
    </div>
</div>