結果を一目で見るハート効果材料: ハートアイコン 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関数の丸め演算における落とし穴の分析
この記事では、WeChatアプレットでビデオプレーヤーの集中砲火を実装するための具体的なコードを参考...
MySQL には 3 つの日付型があります。日付(年-月-日)テーブル test(hiredate ...
Spring jdbc のデータベース操作オブジェクト モデルの詳細な例Spring Jdbc デー...
注: MySQL5.7 で root パスワードをクラックするには、パスワード認証をスキップしてデー...
Kubernetes は、基本認証、トークン認証、CA 認証の 3 種類の認証をサポートしています。...
目次ブートストラップと関連コンテンツの紹介グリッドシステムネストされた列列オフセット列の並べ替えナビ...
MySQL のインデックスの種類一般的に、次の 4 つのカテゴリに分類できます。通常のインデックス:...
テキスト非表示コード、HTML 内の特定のテキストを非表示にするコードをコピーコードは次のとおりです...
インデックスを追加すると、クエリの効率が向上します。インデックスを追加するということは、ドキュメント...
PHP7 がリリースされてからかなり時間が経ちますが、パフォーマンスが大幅に向上したことはよく知られ...
まず、私たちがやりたいことは、serverA の usera を使用して、パスワードなしで serv...
私は SQL の初心者で、オープンソースのインストールは非常に簡単だと思っていましたが、その過程でい...
ビジネス ソーシャル ネットワーキング サイト LinkedIn は最近、ナビゲーション バーとユー...
楽観的ロック楽観的ロックは、主にデータ バージョン記録メカニズムに基づいて実装され、通常はデータベー...
目次複数の種類のフィルタリングをサポート複数の範囲のクエリを避ける並べ替えを最適化するインデックスの...