結果を一目で見るハート効果材料: ハートアイコン 2 つ。私のようなアイコン コンポーネントがない場合は、代わりに png 画像を使用します。 <transition :name=" isLike ? 'zoom' : '' " mode="out-in"> <!-- ハートアイコン--> <icon data="@icon/like.svg" color="#FF0000" v-if="isLike" key="like"></icon> <icon data="@icon/unlike.svg" color="#333333" v-else key="unlike"></icon> </トランジション> ボタンに「いいね!」するとアニメーションが表示され、「いいね!」ボタンをキャンセルするとアニメーションが表示されないため、 transition の name 属性は isLike 変数に応じて変更する必要があります。 2 つのスイッチング コンポーネントの名前が同じ場合は、2 つのコンポーネントを区別するために key 属性を追加する必要があることに注意してください。そうしないと、アニメーションが有効になりません。 次にCSSを記述します /** 進行中のアニメーションのクラス **/ .zoom-enter-active、.zoom-leave-active { 遷移: すべて 0.15 秒 cubic-bezier(0.42, 0, 0.34, 1.55); } /** エントリ開始状態と終了終了状態を設定します。両方とも 0 にスケールされます **/ .zoom-enter、.zoom-leave-to { 変換: スケール(0); } /** エントリ終了ステータスと終了開始ステータスを設定します。どちらも 1 にスケールされます **/ .zoom-enter-to、.zoom-leave { 変換: スケール(1); } 公式ドキュメントによると、アニメーション中のアイコンコンポーネントのクラスには .name-enter-active と .name-leave-active が設定されるので、ここでアニメーションのプロパティ、遷移の時間と曲線を設定します。 ズームイン時に画像 Chromeのデバッグパネルを開き、DOMを見つけてtransition-timing-function: easy;を設定し、easeの横にある小さな曲線アイコンをクリックします。 プルバーをドラッグしてカーブを調整します アニメーションの最後に、曲線を終点を超えて延長するだけです。 次に、曲線パネルの下の値 アニメーションの時間曲線については、インターネット上に関連情報がたくさんあるので、ここでは詳しく説明しません。 ズーム部分に関しては、上記の CSS 設定と
いいねをキャンセルすると、 デジタルスクロールアニメーション数字の変更だけなので、遷移に必要な div は 1 つだけです。データの変更を示すために、div のキーを設定することに注意します。 <div class="like-num-wrapper"> <transition :name="item.is_like ? 'plus' : 'minus'"> <div クラス="like-num" :style="{color: item['is_like'] ? 'red': '#333'}" :key="item['like_num']" > {{item['like_num']}} </div> </トランジション> </div> .like-num-wrapper { 位置: 相対的; 左マージン: 16px; テキスト配置: 終了; フォントサイズ: 13px; 高さ: 17px; オーバーフロー-y: 非表示; .like-num { 上: 0; 左: 0; 位置: 相対的; 行の高さ: 17px; } } 上下のスクロール距離を計算するには、数字の高さを // いいね数 +1 animation.plus-enter-active, .plus-leave-active { 遷移: すべて .3 秒のイーズイン。 } .plus-enter、.plus-leave { 変換: translateY(0); } .plus-enter-to、.plus-leave-to { 変換: translateY(-17px); } // 番号 -1 のように animation.minus-enter-active, .minus-leave-active { 遷移: すべて .3 秒のイーズイン。 } .マイナスエンター{ 変換: translateY(-34px); } .マイナス入力 { 変換: translateY(-17px); } .minus-leave { 変換: translateY(0); } .minus-leave-to { 変換: translateY(17px); } アニメーションのようにいいねアニメーションは非常にシンプルです。いいねボタンをクリックすると、古いデジタル div の下に新しいデジタル div が生成されます。この時点で、すべてを 17 ピクセル上に移動します。 いいねを取り消すと数字が上から下にスクロールするため、数字 1 の初期位置は 2 より上である必要があります。 1番のアニメーションの初期位置を設定するには、次のコードを記述します。 .マイナスエンター{ 変換: translateY(-34px); } なぜ -34px なのでしょうか?デジタル div の高さは 17 ピクセルなので、17 ピクセル上に移動すると 2 と重なり、数字 1 がさらに 17 ピクセル上に移動すると 2 の上に表示されます。 次に、 2 番の終了アニメーションははるかに単純です。0 から 17 ピクセルまでロールアウトするだけです。 この時点で、全体的な同様の効果が完成します 上記は、Vue トランジションを使用して同様のアニメーション効果を実現する例の詳細です。Vue トランジションを使用して同様の効果を実現する方法の詳細については、123WORDPRESS.COM の他の関連記事に注目してください。 以下もご興味があるかもしれません:
|
>>: MySQLのROUND関数の丸め演算における落とし穴の分析
この記事では、MySQL 5.7.18アーカイブ圧縮版をインストールする具体的な方法を参考までに紹介...
・【シーン説明】 HTTP1.1 以降、HTTP プロトコルは永続的な接続 (長い接続とも呼ばれます...
目次1. メモリモデルとランタイムデータ領域2. マインドマップと凡例3. オブジェクトはJVMから...
この記事では、一般的な MySQL ストレージ エンジンの機能と使用方法を例を使って説明します。ご参...
Nginx Rewriteの使用シナリオ1. URL アドレスジャンプ。たとえば、ユーザーが pm....
1.MySQL UPDATE JOIN構文MySQL では、UPDATE ステートメントでJOIN句...
pthread_create関数機能紹介pthread_createはUNIX環境のスレッド作成関数...
レンダリング サンプルコード今日は、WeChat アプレットを使用して 2048 ゲームを実装します...
目次1.配列を初期化する2. 配列の合計、最大値、最小値3. エラー値をフィルタリングする4. 論理...
以前の開発では、クラス、名前などの HTML のデフォルト属性を使用していました。 Huawei社の...
この記事では、画像の切り取りとアップロードを実装するためのvue-cropperコンポーネントの具体...
スワップ メモリとは、主に物理メモリが不足している場合に、システムがハード ディスク領域の一部をサー...
この記事では、参考までに、シンプルな虫眼鏡を実装するためのJavaScriptの具体的なコードを紹介...
この記事では主に、すべてのコンテナを削除する Docker stop/remove を紹介し、皆さん...
この記事では、Linux ファイル管理コマンドについて例を挙げて説明します。ご参考までに、詳細は以下...