uniappでトランジションアニメーションを作る方法
モバイル デバイス アプリケーションの人気に伴い、カラフルなダイナミック エフェクトは多くのアプリケーション開発にとって不可欠な要素となっています。中でもトランジションアニメーションはユーザーエクスペリエンスを向上させる重要な手段です。クロスプラットフォーム アプリケーション開発フレームワーク uniapp では、遷移アニメーションの実装も非常にシンプルで簡単です。
uniapp のトランジション アニメーションは、ネイティブ トランジションとカスタム トランジションの 2 つのカテゴリに分類できます。ネイティブ トランジションはシステムのデフォルトのトランジション効果ですが、カスタム トランジションは必要に応じてカスタマイズできます。
1. ネイティブ トランジション アニメーション
uniapp でのネイティブ トランジション アニメーションの実装は非常に簡単です。pages.json
に "animationType を追加するだけです。設定ファイル "
属性で十分です。以下に、一般的なトランジション アニメーション効果をいくつか示します。
- Push
ページ A の uni.navigateTo
を介してページ B にジャンプするとき、次のように設定できます。プッシュへの遷移アニメーション:
uni.navigateTo({ url: '/pages/b-page/b-page', animationType: 'push', animationDuration: 500 });
効果は次のとおりです:
- Pop
(ページ B) uni.navigateBack
を通じてページ A に戻るとき、遷移アニメーションをポップに設定できます:
uni.navigateBack({ animationType: 'pop', animationDuration: 500 });
効果は次のとおりです:
- フェード
トランジション アニメーションをフェード インおよびフェード アウトのフェード効果に設定できます:
uni.navigateTo({ url: '/pages/b-page/b-page', animationType: 'fade', animationDuration: 500 });
効果は次のとおりです:
- None
uni.navigateTo({ url: '/pages/b-page/b-page', animationType: 'none', animationDuration: 500 });
uni-app-plus プラグと組み合わせて実装する必要があります。 -in および
vue-router ルーティング コンポーネント。カスタムトランジションアニメーションの実装プロセスを詳しく紹介します。
- uni-app-plus プラグインをインストールします
uni-app-plus プラグインを使用すると、いくつかのネイティブ機能を使用できるようになります。 API および uniapp プラグインの API (iOS の
UIKit および Android の
android.view を含む)。したがって、カスタムトランジションアニメーションを使用する場合は、このプラグインを使用する必要があります。
npm install uni-app-plus --save-dev
- vue-router 構成を変更します
ルーティング ガードを構成ファイルに追加して、ページ A からページ B にジャンプするイベントをキャプチャしてカスタム遷移アニメーションを実現できるようにします。 <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'>const router = new VueRouter({
mode: 'history',
base: process.env.BASE_URL,
routes
});
router.beforeEach((to, from, next) => {
if (to.meta.animation === 'custom') {
const pages = getCurrentPages();
const currentPage = pages[pages.length - 1];
const prevPage = pages[pages.length - 2];
currentPage.animation = 'slide-left';
prevPage.animation = 'slide-right';
}
next();
});
export default router;</pre><div class="contentsignin">ログイン後にコピー</div></div>
このコードでは、ルーティング ガード
を追加しました。ジャンプ先のページにカスタム遷移アニメーションが設定されている場合、現在のページと前のページはアニメーションになります。エフェクトは左右にスライドするように設定されているため、カスタムのトランジション アニメーションを実装できます。
ファイルでは、ページ切り替えイベントのアニメーションをリッスンすることでカスタム遷移を実装できます。まず、mounted
ライフ サイクルに次のコードを追加します。 <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'>mounted() {
if (uni.getSystemInfoSync().platform === 'ios') {
const router = this.$router;
router.beforeEach(function(to, from, next) {
if (from.meta.animation === 'custom') {
UniViewJSBridge.publishHandler('animation', {
type: 'set',
pageParam: {
animationEnabled: true
}
}, function() {
router.app.animation = uni.createFromIconfontCN({
scriptUrl: "//at.alicdn.com/t/font_2581006_ourmsf7tpoi.js"
}).css({
animationDuration: '0.4s',
animationTimingFunction: 'ease-in'
}).toStyle();
next();
})
} else {
router.app.animation = '';
next();
}
});
UniViewJSBridge.subscribeHandler('animation', function(dat) {
if (dat.type === 'finish') {
router.app.animation = '';
}
});
}
},</pre><div class="contentsignin">ログイン後にコピー</div></div>
上記のコードは主に次の機能を実装します。
- ルーティングが変更される前に、 UniViewJSBridge
- を通じてネイティブにメッセージを送信し、アニメーションをオンにする必要があることを伝えます。
- によって送信されたメッセージを聞きます。ネイティブ アニメーションの実行が終了したら、
router.app.animation
を空の文字列に割り当て、アニメーション効果が完了したことを示します。終了しました。 次に、次のコードを
タグに追加します。 <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'><view :class="{ 'animated': animation }">
<router-view class="page"></router-view>
</view></pre><div class="contentsignin">ログイン後にコピー</div></div>
ここでは、アニメーション ライブラリ
<link rel="stylesheet" href="//cdn.bootcss.com/animate.css/3.5.2/animate.min.css">
最後に、

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











この記事では、Uni-AppのローカルストレージAPI(uni.setstoragesync()、uni.getStoragesync()、およびそれらの非同期のカウンターパート)を詳しく説明し、説明キーの使用、データサイズの制限、JSONの解析の処理などのベストプラクティスを強調しています。 それはそのloを強調します

この記事では、Uniappでダウンロードされたファイルを名前に変更するための回避策について詳しく説明していますが、直接APIサポートがありません。 Android/iOSには、ダウンロード後の名前を変更するためのネイティブプラグインが必要ですが、H5ソリューションはファイル名の提案に限定されています。 プロセスには時間が含まれます

この記事では、UNIAPPダウンロードのファイルエンコーディングの問題について説明します。 サーバー側のコンテンツタイプのヘッダーと、これらのヘッダーに基づいてクライアント側のデコードにJavaScriptのTextDecoderを使用することの重要性を強調しています。 一般的なエンコードの解決策のソリューション

この記事では、UNI-APPの州管理についてVuexとPiniaを比較します。 それらの機能、実装、およびベストプラクティスを詳細に説明し、ピンアのシンプルさとvuexの構造を強調しています。 選択は、Pinia sutaを使用して、プロジェクトの複雑さに依存します

この記事では、Uni.getLocation()に焦点を当てたUni-AppのGeolocation APIを詳しく説明しています。 誤った座標系(GCJ02対WGS84)や許可の問題などの一般的な落とし穴に対処します。 読み取りと取り扱いを平均化することにより、位置の精度を向上させます

この記事では、uni.requestまたはaxiosを使用してUni-app内でAPIリクエストの作成と保護を詳しく説明しています。 JSON応答の処理、最高のセキュリティプラクティス(HTTPS、認証、入力検証)、トラブルシューティング障害(ネットワークの問題、CORS、S

この記事では、ソーシャル共有をUni.share APIを使用してUni-Appプロジェクトに統合し、WeChatやWeiboなどのプラットフォーム全体でセットアップ、構成、テストをカバーする方法を詳しく説明しています。

この記事では、UNI-APPのEasyCom機能を説明し、コンポーネント登録を自動化します。 Autoscanやカスタムコンポーネントマッピングなどの構成の詳細は、ボイラープレートの削減、速度の向上、読みやすさの向上などの利点を強調しています。
