ホームページ >ウェブフロントエンド >uni-app >uniapp キーボードが縮小するときにアニメーション効果がない場合はどうすればよいですか?
モバイル デバイスの人気とモバイル アプリケーション市場の成長に伴い、開発者はクロスプラットフォーム フレームワークを使用してアプリケーションを開発する方法をますます学習しています。Uniapp は人気のあるクロスプラットフォーム開発フレームワークです。 Uniapp は Vue.js に基づいて開発されており、開発者が開発とデバッグを容易にする一連のプラグインとコンポーネントを提供します。
しかし、Uniapp アプリケーションを開発するときに、一部の開発者は問題を発見しました。入力ボックスにフォーカスが設定されてキーボードがポップアップした後、特に Android デバイスでキーボードが縮小してもアニメーション効果がありません。この問題はユーザー エクスペリエンスに影響を与える可能性があるため、いくつかの解決策を紹介します。
1. vue-router が公式に提供しているトランジションを利用する
vue-router は、Vue.js が公式に提供しているルーティング管理ツールで、ルーティングの遷移効果を実現するためのトランジションを提供します。 Uniapp では、vue-router のトランジションを使用して、キーボードが縮小するときのアニメーション効果を実現できます。
具体的な実装方法は次のとおりです。
<template> <div id="app"> <transition name="fade"> <router-view/> </transition> </div> </template> <script> export default { name: 'App', components: {}, methods: {}, } </script> <style> .fade-enter-active, .fade-leave-active { transition: opacity .5s; } .fade-enter, .fade-leave-to /* .fade-leave-active below version 2.1.8 */ { opacity: 0; } </style>
.slide-up-enter-active, .slide-up-leave-active { transition: all .3s cubic-bezier(.55,0,.1,1); } .slide-up-enter, .slide-up-leave-to { transform: translateY(100%); opacity: 0; }
上記のコードでは、
fade-enter-active
: 入力時のアニメーション効果を示します。 fade-leave-active
: 退出時のアニメーション効果を示します。 : 初期状態に入るとき
: 抜けるときの最終状態
onLoad() { uni.onKeyboardHeightChange((res) => { if(res.height > 0){ //键盘弹出时 this.isShowKey = true; this.keyHeight = res.height; } else { //键盘收回时 this.isShowKey = false; } }); },
uni.onKeyboardHeightChange メソッドにより、キーボードの高さがいつ変更されるかを監視し、コールバック関数をトリガーできます。キーボードの高さが0より大きい場合はキーボードが飛び出すと判断し、対応するDOM要素にアニメーション用のスタイルを追加します、キーボードの高さが0の場合はキーボードが引っ込んだと判断しますとなり、DOM 要素のアニメーション効果がキャンセルされます。
<input class="input" type="text" style="transform: translate3d(0, {{isShowKey ? -(keyHeight - 68)+'px' : '0'}}, 0);" />
: 要素の位置の変更を示します
: キーボードがポップアップするかどうかを示します。true の場合、ポップアップすることを意味します
: キーボードの高さから画面下の操作バーの高さを引いた値を元の基準で上方向に変換します
: 初期状態の要素の位置を示します
<uni-transition :name="'fade'"> <div v-show="showContent" class="content"> //... </div> </uni-transition>
uni-transition コンポーネントをラップできます。アニメーション効果を追加する必要があるページコンポーネント。
:name 属性を通じてアニメーション タイプを指定します。
v-show ディレクティブは、必要に応じてコンポーネントを表示することを意味します。
.fade-enter-active, .fade-leave-active { transition: opacity .5s; } .fade-enter, .fade-leave-to /* .fade-leave-active below version 2.1.8 */ { opacity: 0; }
: 入力時のアニメーション効果を示します
: 離脱時のアニメーション効果を示します
:初期状態に入るとき
: 終了するときの最終状態
以上がuniapp キーボードが縮小するときにアニメーション効果がない場合はどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。