序文ムービー プロジェクトでは、ページを切り替えてから現在のムービー リスト ページに戻るとムービー データの最初の部分に戻ってしまうことを防ぐために、ムービー リスト内のドロップダウンの現在の位置を保存したいと考えています。 このとき、少しスライドするたびに現在の位置を保存するのではなく、一定時間ごとに 1 回保存するようにします。このとき、手ぶれ補正とスロットリングを使用できます。 コンセプト簡単に言えば、手ぶれ補正はタイマーを使用して目的を達成することです。 デバウンス: コールバックはイベントがトリガーされてから n 秒後に実行されます。n 秒以内に再度トリガーされた場合は、タイミングが再開されます。 典型的な例は入力ボックス検索です。入力が完了してから n 秒後に検索要求が行われ、n 秒以内にさらにコンテンツが入力されると時間がリセットされます。 スロットル: 機能は単位時間内に 1 回のみ起動できると規定されています。この単位時間内に機能が複数回起動された場合、そのうち 1 つだけが有効になります。 典型的なケースとしては、マウスを連続的にクリックしてトリガーし、n 秒以内に複数回クリックしても 1 回しか有効にならないように規定されています。 安定意味頻繁な操作はジッターを防ぎます。操作後 n 秒以内に操作が行われない場合、イベントがトリガーされます。操作が継続すると、タイミングがリセットされます。 使用シナリオ
コード// ユーティリティ.js // 即時: 関数の実行をすぐに開始するかどうか debounce(func, delay = 300, immediate = false) { タイマーを null にする 関数()を返す{ if (タイマー) { タイムアウトをクリア(タイマー) } if (即時 && !タイマー) { func.apply(これ、引数) } タイマー = setTimeout(() => { func.apply(これ、引数) }、 遅れ) } } Vueでの使用方法1: パブリックメソッドutilsに記述して導入する 'utils' から { debounce } をインポートします メソッド: { appSearch:debounce(function(e.target.value){ this.handleSearch(値) }, 1000), ハンドル検索(値) { console.log(値) } } 方法2: 現在のvueファイルに書き込む データ: () => { 戻る { デバウンス入力: () => {} } }, メソッド: { showApp(値) { console.log('値', 値) }, デバウンス(func, 遅延 = 300, 即時 = false) { タイマーを null にする 関数()を返す{ if (タイマー) { タイムアウトをクリア(タイマー) } if (即時 && !タイマー) { func.apply(これ、引数) } タイマー = setTimeout(() => { func.apply(これ、引数) }、 遅れ) } } }, マウント() { this.debounceInput = this.debounce(this.showApp, 1000) }, スロットリング意味頻繁な操作は関数の実行を薄めます。頻繁な操作が発生すると、関数は n 秒ごとに 1 回だけトリガーされます。 使用シナリオ
コード// ユーティリティ.js 関数スロットル(関数、遅延 = 300){ 前 = 0 とする 関数()を返す{ now = Date.now() とします。 if ((現在 - 前回) >= 遅延) { func.apply(これ、引数) prev = Date.now() } } } Vueでの使用使い方は手ぶれ補正と同じ 要約するVue での手ぶれ補正とスロットリングの使用に関するこの記事はこれで終わりです。Vue の手ぶれ補正とスロットリングの使用に関するより関連性の高いコンテンツについては、123WORDPRESS.COM で以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
>>: Win7 インストール MySQL 5.6 チュートリアル図
次のコマンドを使用して、MySQL Serverがインストールされているかどうかを確認します。 [r...
XHTML は CSS レイアウトの基礎です。jb51.net は常に XHTML 知識の習得を重視...
シャドウスタイルにおけるフラッターとCSSの対応UIによって指定されたCSSスタイル 幅: 75px...
1. 親コンポーネントはpropsを通じて子コンポーネントにデータを渡すことができる2. 子コンポー...
1. 属性へのリンク(1)ルーティングパスを配置する(2)指定された形式でオブジェクトを配置する{パ...
目次1. はじめに2. 詳しい説明2.1、非同期2.1.1. 関数はPromise以外のオブジェクト...
まず、VirtualBox仮想マシンのネットワーク設定モードについて説明します。NAT+ホストオンリ...
ここで、アンカー ポイントを制御するいくつかの状況をまとめてみましょう。 1. 同じページ <...
<!doctypehtml> <html xmlns="http://...
この記事では、線形グラデーションの凹四角形の遷移効果の難しさやアイデアについて説明します。主に、凹四...
一部の Web ページは大きく見えなくても開くのに非常に時間がかかる場合があります。一方、他の We...
目次1. ミューテックス1. ミューテックスの初期化2. ミューテックスロックの関連特性と分類3. ...
要素までスクロールするたびに読み込みアニメーションを追加するにはどうすればよいですか?初期パラメータ...
1. catalina.bat は UTF-8 に設定する必要があります。UTF-8 に設定しないと...
1. 背景DockerでRabbitMQをデプロイする際に、次の2つの問題が発生します。問題1: ス...