チャットボットは多くの手作業を省くことができ、顧客サービス、天気予報対応など、さまざまな状況で使用できます。この記事では、jQuery Ajax チャットボットを次のように詳しく紹介します。 ' 実装手順:1. ケースのコード構造を整理する a. ページのUIレイアウトを整理する b. ビジネスコードをchat.jsに抽出する c. resetui() の機能を理解する: スクロールバーの位置をリセットする <link rel="スタイルシート" href="css/reset.css" rel="外部nofollow" /> <link rel="スタイルシート" href="css/index.css" rel="外部nofollow" /> <script src="js/jquery-1.12.4.min.js"></script> <script src="js/jquery-ui.min.js"></script> <script src="js/jquery.mousewheel.js"></script> <div class="wrap"> <!--ヘッダー領域--> <div class="header"> <h3>シャオシャンのクラスメイト</h3> <img src="images/person01.png" alt="アイコン" /> </div> <!-- チャットコンテンツエリア--> <div class="main"> <ul class="トークリスト" style="top: 0px" id="トークリスト"> <li class="left_word"> <img src="images/person01.png" /> <span>こんにちは、最近会えなくて寂しかったですか? </span> </li> <!-- <li class="right_word"> <img src="images/person02.png" /> <span>こんにちは</span> </li> --> </ul> <div class="drag_bar" style="display: none;"> <div クラス="drager ui-draggable ui-draggable-handle" スタイル="表示: なし; 高さ: 412.628px;" </div> </div> </div> <!-- 音声を再生 --> <audio src="" id="voice" 自動再生 style="display: none;"></audio> <!-- メッセージ編集領域--> <div class="footer"> <img src="images/person02.png" alt=""> <input type="text" placeholder="何か言ってください..." class="input_txt" id="ipt" /> <input type="button" value="送信" class="input_sub" id="btnSend"> </div> </div> <!-- ページスクロールを実装する --> <script src="js/scroll.js"></script> <script src="js/chat.js"></script> インデックス.css、 体 { フォントファミリ: 'Microsoft YaHei'; } 。包む { 位置: 固定; 幅: 450ピクセル; 左: 50%; 左マージン: -225px; 上: 20px; 下: 20px; 境界線: 1px 実線 #ebebeb; 背景色: #fff; 境界線の半径: 10px; ボックスの影: 0 0 30px rgba(0, 0, 0, 0.1); オーバーフロー: 非表示; } .ヘッダー{ 高さ: 55px; 背景: linear-gradient(90deg, rgba(246, 60, 47, 0.6), rgba(128, 58, 242, 0.6)); オーバーフロー: 非表示; } .ヘッダー h3 { 色: #faf3fc; 行の高さ: 55px; フォントの太さ: 標準; フロート: 左; 文字間隔: 2px; 左マージン: 25px; フォントサイズ: 18px; テキストシャドウ: 0px 0px 5px #944846; } .ヘッダー画像{ フロート: 右; マージン: 7px 25px 0 0; 境界線の半径: 20px; ボックスの影: 0 0 5px #f7f2fe; } 。主要 { 位置: 絶対; 左: 0; 右: 0; 上: 55px; 下: 55px; 背景色: #f4f3f3; ボックスのサイズ: 境界線ボックス; パディング: 10px 0; オーバーフロー: 非表示; } .トークリスト{ 位置: 絶対; 幅: 100%; 左: 0px; 上: 0px; } .トークリスト li { オーバーフロー: 非表示; マージン: 20px 0px 30px; } .talk_list .left_word 画像 { フロート: 左; 左マージン: 20px; } .talk_list .left_word span { フロート: 左; 背景色: #fe9697; パディング: 10px 15px; 最大幅: 290px; 境界線の半径: 12px; フォントサイズ: 16px; 色: #fff; 左マージン: 13px; 位置: 相対的; 行の高さ: 24px; } .talk_list .left_word span:before { コンテンツ: ''; 位置: 絶対; 左: -8px; 上: 3px; 幅: 13px; 高さ: 12px; 背景: url('../images/corner01.png') 繰り返しなし; } .talk_list .right_word 画像 { フロート: 右; 右マージン: 20px; } .talk_list .right_word span { フロート: 右; 背景色: #fff; パディング: 10px 15px; 最大幅: 290px; 境界線の半径: 12px; フォントサイズ: 16px; 色: #000; 右マージン: 13px; 位置: 相対的; 行の高さ: 24px; } .talk_list .right_word span:before { コンテンツ: ''; 位置: 絶対; 右: -8px; 上: 3px; 幅: 13px; 高さ: 12px; 背景: url('../images/corner02.png') 繰り返しなし; } .ドラッグバー{ 位置: 絶対; 右: 0px; 上: 0px; 背景色: #fff; 高さ: 100%; 幅: 6px; ボックスのサイズ: 境界線ボックス; 下境界線: 1px 実線 #f4f3f3; } .drager { 位置: 絶対; 左: 0px; 上: 0px; 背景色: #cdcdcd; 高さ: 100px; 幅: 6px; 境界線の半径: 3px; カーソル: ポインタ; } .フッター{ 幅: 100%; 高さ: 55px; 左: 0px; 下: 0px; 背景色: #fff; 位置: 絶対; } .footer画像{ フロート: 左; マージン: 8px 0 0 20px; } .input_txt { フロート: 左; 幅: 270ピクセル; 高さ: 37px; 境界線: 0px; 背景色: #f4f3f3; マージン: 9px 0 0 20px; 境界線の半径: 8px; パディング: 0px; アウトライン: なし; テキストインデント: 15px; } .input_sub { フロート: 左; 幅: 70ピクセル; 高さ: 37px; 境界線: 0px; 背景色: #fe9697; マージン: 9px 0 0 15px; 境界線の半径: 8px; パディング: 0px; アウトライン: なし; 色: #fff; カーソル: ポインタ; } 効果は以下のとおりです。 2. ユーザー入力をチャットウィンドウにレンダリングする チャット.js、 //スクロールバーの位置をリセットします resetui(); //マウスクリックイベントを送信ボタンにバインドします$("#btnSend").on('click', function () { let text = $("#ipt").val().trim(); //送信するコンテンツ//送信するコンテンツが空かどうかを判定します if (text.length <= 0) { $("#ipt").val(''); を返します。 } //ユーザーがチャット内容を入力した場合、チャット内容をページに追加して表示します $("#talk_list").append(`<li class="right_word"><img src="images/person02.png" /> <span>${text}</span></li>`); //送信後に入力ボックスをクリアします$("#ipt").val(''); //スクロールバーの位置をリセットします resetui(); }); 3. チャットメッセージを取得するためのリクエストを開始する チャット.js、 //サーバーからデータを要求する関数を定義します -- チャットボット関数から返されたデータを取得します getMsg(text){ $.ajax({ メソッド: 'GET'、 URL: 'http://www.liulongbin.top:3006/api/robot', data:{// ユーザーが送信したメッセージをサーバーに送信する。spoke: text }, 成功: function(res){ // コンソールログ(res); //リクエストが成功したかどうかを判断する data.info.text if(res.message === "成功"){ // サーバーから返されたチャット メッセージを受信します。let msg = res.data.info.text; // コンソールログ(メッセージ); // サーバーから返されたチャット メッセージをチャット インターフェイスにレンダリングします $("#talk_list").append(`<li class="left_word"><img src="images/person01.png" /> <span>${msg}</span></li>`); //スクロールバーの位置をリセットします resetui(); } } }) } 4. ロボットのチャット内容を音声に変換する 5. <audio> でオーディオを再生する //ロボットのチャット内容を音声に変換する function getVoice(text){ $.ajax({ メソッド: 'GET'、 URL: 'http://www.liulongbin.top:3006/api/synthesize', データ: { テキスト: テキスト }, 成功: function(res){ // コンソールログ(res); //リクエストが成功したかどうかを判断します if (res.status === 200) { //音声を再生$("#voice").attr("src",res.voiceUrl); } } }) } 6. Enterキーを使ってメッセージを送信します //テキスト入力ボックスにイベントをバインドします。Enter キーが押されて放されたときにチャットコンテンツを自動的に送信します。$("#ipt").on('keyup',function(e){ // console.log(e.keyCode); // 13 //ユーザーがEnterキーを押したかどうかを判定します if(e.keyCode === 13){ //ボタン要素のクリック関数を呼び出してそのコンテンツを送信します $("#btnSend").click(); } }) jQuery を使用した Ajax チャットボットの実装の完全なケースに関するこの記事はこれで終わりです。より関連性の高い jQuery Ajax チャットボットのコンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: MySQL query_cache_type パラメータと使用方法の詳細
>>: HTML コメント HTML 内のテキストコメントをマークするための記号
原理ホバーしたときに要素に影を設定します: box-shadow で、通常とは異なるスタイルにします...
Vue のツリー表示については、プロジェクトが使用されています: エフェクト ダイアグラムがツリー...
1. プロジェクト文書 2. ページレイアウトにHTMLとCSSを使用するHTML部分 <di...
目次1. 親が子コンポーネントに値を渡す2. 子コンポーネントが親コンポーネントに値を渡す3. 子コ...
冒頭に書いた以前、Renren で JS ベースのスクリーンショット ソリューションについて説明した...
目次1. 要件の説明2. アイデアの概要1. 延長を要求する2. アイデアの概要3. SQLコード1...
ビルドを無効にするパーティション式では、次の構成はサポートされません。ストアドプロシージャ、ストアド...
目次- 序文 - - JVM クラスローダー - 1. JVMクラスローダー2. クラスローダーのソ...
この記事では、モグラ叩きゲームを実装するためのJavaScriptの具体的なコードを参考までに紹介し...
コンテナにネットワークインターフェースを追加する1 デフォルトのネットワークモードでコンテナを実行す...
この記事の例では、ボタンをクリックすることで画像を切り替えることを実現するJavaScriptの具体...
mkdir コマンドを使用して新しいディレクトリを作成できることは誰もが知っていますが、多くの場合、...
この記事では、マウスがドロップダウンボックスの上を通過するときにドロップダウンボックスを表示するため...
1. 基本的な使い方 <!DOCTYPE html> <html lang=&qu...
MySQL への接続時に発生する 1449 および 1045 例外の解決方法 mysql 1449:...