Vueトランジションを使用して、いいね!のアニメーション効果を実現する

Vueのトランジションコンポーネントを使えば、いいね!アニメーションの効果を表現できます。以下はその簡単なサンプルコードです。

<template>

<div>

<button @click=”like” :disabled=”liked”>点赞</button>

<transition name=”fade”>

<span v-if=”liked” class=”heart”>❤️</span>

</transition>

</div>

</template>

<script>

export default {

data() {

return {

liked: false

};

},

methods: {

like() {

this.liked = true;

setTimeout(() => {

this.liked = false;

}, 2000); // 这里设置2秒后取消点赞状态,可以根据需要调整时间

}

}

};

</script>

<style scoped>

.fade-enter-active,

.fade-leave-active {

transition: opacity 0.5s;

}

.fade-enter,

.fade-leave-to {

opacity: 0;

}

.heart {

font-size: 24px;

color: red;

}

</style>


上記のコードでは、Vueのコンポーネントを使用して要素をラップし、その要素を使用していいね!アイコン(ここではハートアイコンを使用)を表示します。[いいね!]ボタンをクリックすると、likedプロパティの値を変更して要素を表示または非表示にし、遷移効果をトリガーします。

フェードアウトエフェクトを実現するために、要素にCSSクラス名「fade」を追加し、それに対応するトランジションスタイルを定義しました。この例では、トランジションプロパティとしてopacityプロパティを使用しており、トランジション時間を0.5秒に設定しています。

setTimeout関数は、いいねして取り消す際の遅延効果をシミュレートするために使用されます。遅延時間は必要に応じて調整できます。

上記のコードにより、「いいね」ボタンをクリックすると、いいねアイコンがフェードイン・フェードアウトのアニメーションで表示され、2秒後に自動的に非表示になります。

コメントを残す 0

Your email address will not be published. Required fields are marked *


广告
広告は10秒後に閉じます。
bannerAds