ホームページ ウェブフロントエンド jsチュートリアル パーソナライズされた強力な Jquery 仮想キーボード (VirtualKeyboard) を作成する_jquery

パーソナライズされた強力な Jquery 仮想キーボード (VirtualKeyboard) を作成する_jquery

May 16, 2016 pm 04:34 PM
jquery 仮想キーボード

最近のプロジェクトで、私は Web ページのフロントエンドを担当しましたが、顧客は外部マウスやキーボードを使用せずにタッチ スクリーンを使用して操作する必要がありましたが、数字を含むテキストを入力できる必要がありました。 、英語、中国語。考えた結果、JSを使って仮想キーボードを実装することにしました。

まず、インターネットで JS 仮想キーボードを検索しました。慎重に検討した結果、強力な JS 仮想キーボード プラグインである VirtualKeyboard が気に入りました。

VirtualKeyboard を簡単に紹介します。100 を超える組み込みキーボード レイアウト、200 を超える入力メソッド、9 セットのオプションのスキン プランがあり、非常に強力です。

最初にダウンロード アドレスを添付してください。最新バージョンは 3.94 です: http://www.corallosoftware.it/Download/download.html このチュートリアルでは 3.71 を使用しており、別のダウンロードは提供されません。必要な場合は、記事の最後にある私の修正バージョンをダウンロードできます

ダウンロード後、まずデモ ドキュメントを確認し、Jsvkjscriptsdemo_inline.html を開くと、仮想キーボードが非常に美しく、期待どおりの中国語ピンイン入力をサポートしていることがわかります。以下に示すように:

プロジェクトに組み込んで、あとは実行するだけです。

まず、Jsvkjscripts ディレクトリ内のファイルをプロジェクトにコピーします。テキスト ファイルと HTML デモ ファイルは削除できます。

プロジェクト ページで参照される JS ファイル:

コードをコピー コードは次のとおりです:



説明: vk_layout=CN 簡体字中国語ピンインは、デフォルトの入力方法が簡体字中国語、 に設定されていることを意味します。

vk_skin= flat_gray は、 flat_gray がデフォルトのスキンとして選択されていることを意味します。これら 2 つは個人のニーズに応じて設定できます。

仮想キーボードの呼び出し/非表示を切り替える機能:

VirtualKeyboard.toggle("txt_Search", "ソフトキー");
txt_Search はテキスト ボックスの ID、softkey は仮想キーボードが表示される要素の ID です。

これは簡単な例です:

コードをコピーします コードは次のとおりです:


<頭>



                                                                                                                                                                                                         


効果:

必要な機能を段階的にカスタマイズ

基本的な機能は実装されました。次のステップは中国語と英語を切り替えることです。まずCapsLockをクリックして大文字に切り替えて試してみましたが、中国語モードで大文字に切り替えると入力は中国語のままでした。右下隅にある入力方法選択メニューをクリックし、「US」を見つけて英語の入力方法に切り替えるだけです。これは不可能です。毎回、何百ものオプションを切り替えなければなりません。ユーザー エクスペリエンスはなんとも劣悪なものです。

そこで、予備的なアイデアを用意し、ドロップダウン リストをクリアして、中国語と英語のオプションのみを含むリストを手動で作成しました。ドロップダウン リストをクリアするには、まずその ID を知る必要があります。この種のレイヤーは通常、動的に作成されるので、Jsvkjscriptsvirtualkeyboard.js を見つけて開きました。予想どおり、コードは圧縮されており、直接読み取ることができます。したがって、最初にそれを解凍する必要があります。 http://jsbeautifier.org/ を開き、JS ファイル内のコードを入力ボックスにコピーし、ボタンをクリックすると解凍が完了します。 ctrl a、ctrl c を押して新しい JS ファイルにコピーすると、OK、それを読み取ることができます。 「

"

kb_mappingselector はキーボード レイアウト選択ボックスの ID、kb_langselector は入力方法選択ボックスの ID、kb_langselector は必要な ID です。

ID を使用すると、動的に作成されるため、作成が完了した後にのみ ID を取得できるため、仮想キーボードが読み込まれた後にコードを書きました。


次のコードは JQuery フレームワークを使用しており、通常に使用する前に参照する必要があります。

コードは次のとおりです:


関数テスト(){
$("#kb_langselector").empty().append("

テスト後、読み込みが 10% で停止し、ページで JS エラーが発生することがわかりました。

エラーの説明から、おそらく私が構築したオプションに問題があると推測しましたが、いくつかのトレースとデバッグを行っても具体的な問題は見つかりませんでした。もしヒーローがエラーを見つけたら、教えていただければ幸いです。 !

長期間にわたってエラーが発生した場合は、考え方を変えてください。

最初のアイデアは失敗したので、私が作ったものに何か問題があったので、私はそれを自分で作ることはできませんが、余分なものは必要ありません。

このアイデアに従って、読み込みコードを再検討したところ、インプットメソッドによって読み込まれる JS は Jsvkjscriptslayoutslayouts.js で定義されていることがわかりました。そこで思い切って冗長なオプションを削除し、簡体字中国語と米国の 2 つのオプションだけを残しました。変更後のレンダリングは次のとおりです。中国語と英語の 2 つのみがあり、こちらの方がはるかにきれいです。

これは私が望んでいることではありません!

中国語と英語の切り替えが実装されましたが、操作が十分ではありません。ワンクリック切り替えが必要です。キーボードに切り替えキーを追加してみてはいかがでしょうか。

まず、スキン ファイル Jsvkjscriptscss flat_graybutton_set.png を見つけます。ボタンを自分で追加したいのです。

元画像:


変更後:

画像を変更するだけでは十分ではありません。ボタンはスタイル シートに配置され、スタイル シートを変更し続けます。スタイル シート Jsvkjscriptscss flat_graykeyboard.css の最後に次のコードを追加します。

コードは次のとおりです:


#kbDesk div#kb_binput_method {
float: 右;
幅: 102px;
}
#kbDesk div#kb_binput_method a {
背景位置: -453px 0px;
}
#kbDesk div#kb_binput_method.kbButtonHover a {
背景位置: -453px -38px;
}
#kbDesk div#kb_binput_method.kbButtonDown a {
背景位置: -453px -76px;
}

次に、JS ファイルでボタンのイベントを定義する必要があります。 virtualkeyboard.js を開いて

を見つけます

コードをコピーします コードは次のとおりです:

var C = {
14: 'バックスペース'、
15: 'タブ'、
28: '入る'、
29: 'キャップ'、
41: 'shift_left'、
52: 'shift_right',
53: 'デル'、
54: 'ctrl_left',
55: 'alt_left',
56: 'スペース'、
57: 'alt_right',
58: 'ctrl_right'
};

以下に 59: 'input_method' を追加します。'ctrl_right' の後にカンマを忘れずに追加してください。変更後:

コードをコピーします コードは次のとおりです:

var C = {
14: 'バックスペース'、
15: 'タブ'、
28: '入る'、
29: 'キャップ'、
41: 'shift_left'、
52: 'shift_right',
53: 'デル'、
54: 'ctrl_left',
55: 'alt_left',
56: 'スペース'、
57: 'alt_right',
58: 'ctrl_right',
59: '入力メソッド'
};

ボタン クリックの応答コードを探し続けます:

コードをコピー コードは次のとおりです:

var d = 関数 (i) {
        var e = DOM.getParent(i.srcElement || i.target, 'a');
        if (!e || e.parentNode.id.indexOf(Q)         e = e.parentNode;
        var iI = X;
        var il = e.id.substring(Q.length);
        スイッチ (il) {
            ケース「キャップ」:
                iI = iI ^ s;
                休憩;
            ケース "shift_left":
            ケース "shift_right":
                if (i.shiftKey) Break;
                iI = iI ^ Z;
                休憩;
            case "alt_left":
            case "alt_right":
            case "ctrl_left":
            case "ctrl_right":
                iI = iI ^ (i.altKey                 休憩;
            デフォルト:
                if (_) DOM.CSS(e).addClass(y.buttonDown);
                休憩
        }
        if (X != iI) {
            B(iI);
            b();
        }
        i.preventDefault();
        i.stopPropagation();
    };

修正内容:

复制代码代码如下:

var d = 関数 (i) {
        var e = DOM.getParent(i.srcElement || i.target, 'a');
        if (!e || e.parentNode.id.indexOf(Q)         e = e.parentNode;
        var iI = X;
        var il = e.id.substring(Q.length);
        スイッチ (il) {
            ケース「キャップ」:
                iI = iI ^ s;
                休憩;
            case "input_method":
                if (document.getElementById("kb_langselector").value == 'US US') {
                    VirtualKeyboard.switchLayout("CN 簡体字ピンイン");

}
                他 {
                    VirtualKeyboard.switchLayout("US US");

}
                休憩;
            ケース "shift_left":
            ケース "shift_right":
                if (i.shiftKey) Break;
                iI = iI ^ Z;
                休憩;
            case "alt_left":
            case "alt_right":
            case "ctrl_left":
            case "ctrl_right":
                iI = iI ^ (i.altKey                 休憩;
            デフォルト:
                if (_) DOM.CSS(e).addClass(y.buttonDown);
                休憩
        }
        if (X != iI) {
            B(iI);
            b();
        }
        i.preventDefault();
        i.stopPropagation();
    };


  

OK、大功告成!看下效果图

外观及び機能搞定,但一看它的文章夹,足足7M多,精简!精简过程就不写啦,精简完了後:

写了这么多,谢谢你能把它看完,最後放上全部修改精简完了後的资源网!

http://www.jb51.net/jiaoben/228716.html

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

jQueryのリファレンスメソッドを詳しく解説:クイックスタートガイド jQueryのリファレンスメソッドを詳しく解説:クイックスタートガイド Feb 27, 2024 pm 06:45 PM

jQuery 参照方法の詳細説明: クイック スタート ガイド jQuery は、Web サイト開発で広く使用されている人気のある JavaScript ライブラリであり、JavaScript プログラミングを簡素化し、開発者に豊富な機能を提供します。この記事では、jQuery の参照方法を詳しく紹介し、読者がすぐに使い始めるのに役立つ具体的なコード例を示します。 jQuery の導入 まず、HTML ファイルに jQuery ライブラリを導入する必要があります。 CDN リンクを通じて導入することも、ダウンロードすることもできます

jQueryでPUTリクエストメソッドを使用するにはどうすればよいですか? jQueryでPUTリクエストメソッドを使用するにはどうすればよいですか? Feb 28, 2024 pm 03:12 PM

jQueryでPUTリクエストメソッドを使用するにはどうすればよいですか? jQuery で PUT リクエストを送信する方法は、他のタイプのリクエストを送信する方法と似ていますが、いくつかの詳細とパラメータ設定に注意する必要があります。 PUT リクエストは通常​​、データベース内のデータの更新やサーバー上のファイルの更新など、リソースを更新するために使用されます。以下は、jQuery の PUT リクエスト メソッドを使用した具体的なコード例です。まず、jQuery ライブラリ ファイルが含まれていることを確認してから、$.ajax({u

コンピューター上で仮想キーボードを呼び出す方法 コンピューター上で仮想キーボードを呼び出す方法 Feb 28, 2024 pm 06:52 PM

ユーザーはコンピュータ上の仮想キーボードの表示を自由にオンまたはオフにすることができます。一部のユーザーは、コンピュータ上で仮想キーボードを表示する方法が分からないため、タスク バーのプロパティでツールバーを確認し、タスク バーをクリックするだけで済みます。続いて編集者がユーザー向けにパソコンの仮想キーボードの設定方法を紹介しますので、興味のある方はぜひご覧ください!コンピュータ上で仮想キーボードを表示するにはどうすればよいですか? 回答: タスク バーのプロパティでツールバーを確認し、タスク バーをクリックして詳細を確認します: 1. タスク バーを右クリックし、下の [プロパティ] をクリックします。 2. タスクバーのプロパティで[ツールバー]を選択します。 3. [タッチキーボード]の前にあるチェックボックスをオンにし、右下の[適用]をクリックします。 4. コンピューターの右下のタスクバーにキーボードのロゴが表示されます。 5. ロゴをクリックして、

jQueryで要素の高さ属性を削除するにはどうすればよいですか? jQueryで要素の高さ属性を削除するにはどうすればよいですか? Feb 28, 2024 am 08:39 AM

jQueryで要素の高さ属性を削除するにはどうすればよいですか?フロントエンド開発では、要素の高さ属性を操作する必要が生じることがよくあります。要素の高さを動的に変更する必要がある場合や、要素の高さ属性を削除する必要がある場合があります。この記事では、jQuery を使用して要素の高さ属性を削除する方法と、具体的なコード例を紹介します。 jQuery を使用して高さ属性を操作する前に、まず CSS の高さ属性を理解する必要があります。 height 属性は要素の高さを設定するために使用されます

jQuery のヒント: ページ上のすべての a タグのテキストをすばやく変更する jQuery のヒント: ページ上のすべての a タグのテキストをすばやく変更する Feb 28, 2024 pm 09:06 PM

タイトル: jQuery ヒント: ページ上のすべての a タグのテキストをすばやく変更する Web 開発では、ページ上の要素を変更したり操作したりする必要がよくあります。 jQuery を使用する場合、ページ内のすべての a タグのテキスト コンテンツを一度に変更する必要がある場合があります。これにより、時間と労力を節約できます。以下では、jQuery を使用してページ上のすべての a タグのテキストをすばやく変更する方法と、具体的なコード例を紹介します。まず、jQuery ライブラリ ファイルを導入し、次のコードがページに導入されていることを確認する必要があります: &lt

jQuery を使用してすべての a タグのテキスト コンテンツを変更する jQuery を使用してすべての a タグのテキスト コンテンツを変更する Feb 28, 2024 pm 05:42 PM

タイトル: jQuery を使用して、すべての a タグのテキスト コンテンツを変更します。 jQuery は、DOM 操作を処理するために広く使用されている人気のある JavaScript ライブラリです。 Web 開発では、ページ上のリンク タグ (タグ) のテキスト コンテンツを変更する必要が生じることがよくあります。この記事では、この目標を達成するために jQuery を使用する方法を説明し、具体的なコード例を示します。まず、jQuery ライブラリをページに導入する必要があります。 HTML ファイルに次のコードを追加します。

jQuery 要素に特定の属性があるかどうかを確認するにはどうすればよいですか? jQuery 要素に特定の属性があるかどうかを確認するにはどうすればよいですか? Feb 29, 2024 am 09:03 AM

jQuery 要素に特定の属性があるかどうかを確認するにはどうすればよいですか? jQuery を使用して DOM 要素を操作する場合、要素に特定の属性があるかどうかを判断する必要がある状況がよく発生します。この場合、jQuery が提供するメソッドを使用してこの関数を簡単に実装できます。以下では、jQuery 要素が特定の属性を持つかどうかを判断するために一般的に使用される 2 つの方法を紹介し、具体的なコード例を添付します。方法 1: attr() メソッドと typeof 演算子 // を使用して、要素に特定の属性があるかどうかを判断します

jQuery における eq の役割と応用シナリオを理解する jQuery における eq の役割と応用シナリオを理解する Feb 28, 2024 pm 01:15 PM

jQuery は、Web ページでの DOM 操作やイベント処理を処理するために広く使用されている人気のある JavaScript ライブラリです。 jQueryではeq()メソッドを利用して指定したインデックス位置の要素を選択しますが、具体的な使い方と応用シーンは以下の通りです。 jQuery では、 eq() メソッドは、指定されたインデックス位置にある要素を選択します。インデックス位置は 0 からカウントされます。つまり、最初の要素のインデックスは 0、2 番目の要素のインデックスは 1 などとなります。 eq() メソッドの構文は次のとおりです。 $("s

See all articles