JavaScript 手ぶれ補正のケーススタディ

JavaScript 手ぶれ補正のケーススタディ

原理

手ぶれ補正の原理は、イベントをトリガーすることはできますが、イベントがトリガーされてから n 秒後に実行する必要があるというものです。イベントがトリガーされてから n 秒以内にこのイベントを再度トリガーすると、新しいイベントの時間を基準にして、n 秒後に実行します。つまり、イベントがトリガーされ、n 秒以内にそれ以上イベントがトリガーされなくなるまで実行されません。

場合

<!DOCTYPE html>
<html lang="zh-cmn-Hans">
<ヘッド>
    <メタ文字セット="utf-8">
    <meta http-equiv="x-ua-compatible" content="IE=edge, chrome=1">
    <title>デバウンス</title>
    <スタイル>
        * {
            マージン: 0;
            パディング: 0;
        }
        #容器 {
            幅: 100%;
            高さ: 200px;
            行の高さ: 200px;
            テキスト配置: 中央;
            色: #fff;
            背景色: #444;
            フォントサイズ: 30px;
        }
    </スタイル>
</head>
<本文>
    <div id="コンテナ"></div>
    <script src="debounce.js"></script>
</本文>
</html>
関数 getUserAction(e) {
    console.log(これを);
    コンソールログ(e);
    コンテナ内のHTML要素の数。
};
関数デバウンス(func, wait) {
    var タイムアウト;
    関数を返す(){
        タイムアウトをクリアします(タイムアウト);
        タイムアウト = setTimeout(() => {
            func.apply(this, arguments); // this とイベントオブジェクトイベントを解決します
        }、 待って);
    }
}
コンテナの onmousemove をデバウンスします (getUserAction、1000)。 

JavaScript 手ぶれ補正のケーススタディに関するこの記事はこれで終わりです。JavaScript 手ぶれ補正に関するより関連性の高いコンテンツについては、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • JS 手ぶれ補正機能の実装と使用シナリオ
  • JavaScript のデシェイクとスロットリングの例
  • JS 関数のアンチシェイクと関数スロットリングを理解する方法
  • Javascript スロットル関数とデバウンス関数
  • JavaScript のアンチシェイクとスロットリングで発生した奇妙な問題と解決策
  • 面接でJavaScriptのスロットリングとデシェイク関数を手書きする方法
  • js スロットリングとアンチシェイクの適用シナリオと、vue でのスロットリングとアンチシェイクの具体的な実装
  • JavaScript スロットリングと手ぶれ補正機能についての簡単な説明

<<:  NginxにおけるRewriteのリダイレクト設定と実践の詳しい解説

>>:  MySQLは間違ったパスワードを入力する試行回数を制御します

推薦する

PHP+nginx サービス 500 502 エラーのトラブルシューティングのアイデアの詳細な説明

概要オンラインサービスへのアクセス中に 500 または 502 エラーが発生した場合、緊急処理とトラ...

Linux の MySQL でリモート接続を承認する方法

注意: 他のマシン (IP) は、承認なしではクライアント経由で MySQL データベースに接続でき...

NextCloud プライベート クラウド ストレージ ネットワーク ディスクの構築に関する詳細なチュートリアル

Nextcloud は、オープンソースで無料のプライベート クラウド ストレージ ネットワーク ディ...

美しい FLASH ウェブサイト デザイン例 50 選

Flashにより、デザイナーや開発者はブラウザ上でリッチなコンテンツを提供し、動き、インタラクティブ...

HTMLページの読み込み速度を上げる方法

(1)HTTPリクエストを減らす。 (リソース ファイルをマージし、イメージ スプライトを使用します...

Vue のライフサイクルとフック関数

目次1.ライフサイクルとは何か2. Vueのライフサイクル3. ライフサイクルフック関数1.ライフサ...

HTML 選択タグにおける単一選択と複数選択の詳細な説明

select 要素は、単一選択または複数選択のメニューを作成します。フォームが送信されると、ブラウザ...

Vue エクスポート Excel 機能の全プロセス記録

目次1. フロントエンドのリーディングプロセス: 2. プラグインの使用と初期化2.1 vue-ad...

MySQLはこのような更新文を決して書きません

目次序文原因現象なぜ?分析要約する序文今日は、非常に典型的な MySQL の「落とし穴」についてお話...

Access_Tokenの統合管理を実現するミニプログラム開発

目次TOKEN タイマーリフレッシュ2. access_tokenの内部設計2.1 access_t...

Mysql系SQLクエリ文の書き順と実行順を詳しく解説

目次1. 完全なSQLクエリステートメントの記述順序2. 完全なSQL文の実行順序3. select...

シリアルポート使用時のvue-electronの問題解決

エラーは次のとおりです:キャッチされない TypeError: 未定義のプロパティ 'mod...

Zabbix を使用して ogg プロセスを監視する (Windows プラットフォーム)

この記事では、Windows プラットフォームで ogg プログラムを監視する方法を紹介します。 (...

Spark と Scala を使用して Apache アクセス ログを分析する方法

インストールまず、Java と Scala をインストールし、次に Spark をダウンロードしてイ...

Vue + 要素の動的複数ヘッダーと動的スロット

目次1. 需要2. 効果3. すべてのコード1. 需要ユーザーが自分でテーブルを構成できるようになり...