Ajax — 聊天机器人演示

<body><div class="wrap"><!-- 头部 Header 区域 --><div class="header"><h3>小思同学</h3><img src="img/person01.png" alt="icon" /></div><!-- 中间 聊天内容区域 --><div class="main"><ul class="talk_list" style="top: 0px;" id="talk_list"><!-- <li class="left_word"><img src="img/person01.png" /> <span>嗨,最近想我没有?</span></li> --><!-- <li class="right_word"><img src="img/person02.png" /> <span>你好哦</span></li> --></ul><div class="drag_bar" style="display: none;"><div class="drager ui-draggable ui-draggable-handle" style="display: none; height: 412.628px;"></div></div></div><!-- 底部 消息编辑区域 --><div class="footer"><img src="img/person02.png" alt="icon" /><input type="text" placeholder="说的什么吧..." class="input_txt" id="ipt" /><input type="button" value="发 送" class="input_sub" id="btnSend" /></div></div><!-- 注意:只要为 audio 指定了新的 src 属性,而且指定了 autoplay,那么,语音就会自动播放 --><audio src="" id="voice" autoplay style="display: none;"></audio>//已下是滚动条函数添加<script type="text/javascript" src="js/scroll.js"></script><!-- <script src="./js/chat.js"></script> -->
</body>
//重置文件<link rel="stylesheet" href="css/reset.css" />
//文本主体文件<link rel="stylesheet" href="css/main.css" />body {font-family: 'Microsoft YaHei';
}
.wrap {position: fixed;width: 450px;left: 50%;margin-left: -225px;top: 20px;bottom: 20px;border: 1px solid #ebebeb;background-color: #fff;border-radius: 10px;box-shadow: 0 0 30px rgba(0, 0, 0, 0.1);overflow: hidden;
}
.header {height: 55px;background: linear-gradient(90deg, rgba(246, 60, 47, 0.6), rgba(128, 58, 242, 0.6));overflow: hidden;
}
.header h3 {color: #faf3fc;line-height: 55px;font-weight: normal;float: left;letter-spacing: 2px;margin-left: 25px;font-size: 18px;text-shadow: 0px 0px 5px #944846;
}
.header img {float: right;margin: 7px 25px 0 0;border-radius: 20px;box-shadow: 0 0 5px #f7f2fe;
}
.main {position: absolute;left: 0;right: 0;top: 55px;bottom: 55px;background-color: #f4f3f3;box-sizing: border-box;padding: 10px 0;overflow:hidden;
}
.talk_list{position: absolute;width:100%;left:0px;top:0px;
}
.talk_list li {overflow: hidden;margin: 20px 0px 30px;
}
.talk_list .left_word img {float: left;margin-left: 20px;
}
.talk_list .left_word span {float: left;background-color: #fe9697;padding: 10px 15px;max-width: 290px;border-radius: 12px;font-size: 16px;color: #fff;margin-left: 13px;position: relative;line-height: 24px;
}
.talk_list .left_word span:before {content: '';position: absolute;left: -8px;top: 3px;width: 13px;height: 12px;background: url('../img/corner01.png') no-repeat;
}
.talk_list .right_word img {float: right;margin-right: 20px;
}
.talk_list .right_word span {float: right;background-color: #fff;padding: 10px 15px;max-width: 290px;border-radius: 12px;font-size: 16px;color: #000;margin-right: 13px;position: relative;line-height: 24px;
}
.talk_list .right_word span:before {content: '';position: absolute;right: -8px;top: 3px;width: 13px;height: 12px;background: url('../img/corner02.png') no-repeat;
}
.drag_bar{position:absolute;right:0px;top:0px;background-color: #fff;height:100%;width:6px;box-sizing:border-box;border-bottom:1px solid #f4f3f3;
}
.drager{position:absolute;left:0px;top:0px;background-color: #cdcdcd;height:100px;width:6px;border-radius:3px;cursor: pointer;
}.footer{width:100%;height: 55px;left:0px;bottom:0px;background-color:#fff;position: absolute;
}.footer img{float: left;margin:8px 0 0 20px;
}.input_txt{float: left;width:270px;height:37px;border:0px;background-color: #f4f3f3;margin:9px 0 0 20px;border-radius:8px;padding:0px;outline:none;text-indent:15px;
}
.input_sub{float: left;width:70px;height:37px;border:0px;background-color: #fe9697;margin:9px 0 0 15px;border-radius:8px;padding:0px;outline:none;color:#fff;cursor: pointer;    
}
以下引入文件请自行下载:<script type="text/javascript" src="js/jquery-1.12.4.min.js"></script><script type="text/javascript" src="js/jquery-ui.min.js"></script><script type="text/javascript" src="js/jquery.mousewheel.js"></script>
//* http://jqueryui.com
//(http://brandon.aaron.sh)
$(function () {// 初始化右侧滚动条// 这个方法定义在scroll.js中resetui()// 为发送按钮绑定鼠标点击事件$('#btnSend').on('click', function () {var text = $('#ipt').val().trim()if (text.length <= 0) {return $('#ipt').val('')}// 如果用户输入了聊天内容,则将聊天内容追加到页面上显示$('#talk_list').append('<li class="right_word"><img src="img/person02.png" /> <span>' + text + '</span></li>')$('#ipt').val('')// 重置滚动条的位置resetui()// 发起请求,获取聊天内容getMsg(text)})// 获取聊天机器人发送回来的消息function getMsg(text) {$.ajax({method: 'GET',url: 'http://www.liulongbin.top:3006/api/robot',data: {spoken: text},success: function (res) {// console.log(res)if (res.message === 'success') {// 接收聊天消息var msg = res.data.info.text$('#talk_list').append('<li class="left_word"><img src="img/person01.png" /> <span>' + msg + '</span></li>')// 重置滚动条的位置resetui()// 调用 getVoice 函数,把文本转化为语音getVoice(msg)}}})}// 把文字转化为语音进行播放function getVoice(text) {$.ajax({method: 'GET',url: 'http://www.liulongbin.top:3006/api/synthesize',data: {text: text},success: function (res) {// console.log(res)if (res.status === 200) {// 播放语音$('#voice').attr('src', res.voiceUrl)}}})}// 为文本框绑定 keyup 事件$('#ipt').on('keyup', function (e) {// console.log(e.keyCode)if (e.keyCode === 13) {// console.log('用户弹起了回车键')$('#btnSend').click()}})
})

实现效果:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/248066.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Ajax — 第三天

Ajax-03 模板引擎原理 正则回顾 区分正则方法和字符串方法 正则方法 test()exec() 字符串方法 match()replace()split()search() 正则方法由正则表达式调用&#xff1b;字符串方法由字符串调用&#xff1b; exec方法 功能&#xff1a;使用正则表达式匹配字符串&#xff0c…

d3.js 共享交换平台demo

今天在群里遇到一张图 遂来玩一玩&#xff0c;先来上图!! 点击相应按钮&#xff0c;开关线路&#xff0c;此项目的重点是计算相应图形的位置&#xff0c;由于是个性化项目就没有封装布局。好了直接上代码。 <!DOCTYPE html> <html lang"en"> <head&g…

Java知识系统回顾整理01基础05控制流程07结束外部循环

一、break是结束当前循环 二、结束当前循环实例 break; 只能结束当前循环 public class HelloWorld { public static void main(String[] args) { //打印单数 for (int i 0; i < 10; i) { for (int j 0; j < 1…

Ajax — 新闻列表

注意&#xff1a;本项目主要利用到了template&#xff0c;模板引擎进行编写 模板引擎代码下载地址 <div id"news-list"><!-- 这里放数据 --></div>.news-item {display: flex;border: 1px solid #eee;width: 700px;padding: 10px;margin-bottom: …

Ajax — 第四天

数据交换格式 XML 写法&#xff1a; 一个文档有且只有一个根标签标签必须闭合属性值必须加引号 如果说服务器返回的数据是xml格式的 前端需要把服务器返回的xml当做document对象来处理目前无法演示&#xff0c;自己写接口的时候&#xff0c;我们可以测试一下。 JSON 写法…

数据库系统原理(第三章数据库设计 )

一、数据库设计概述 数据库的生命周期 数据库设计的目标&#xff1a; 满足应用功能需求&#xff08;存、取、删、改&#xff09;&#xff0c;良好的数 据库性能&#xff08;数据的高效率存取和空间的节省 共享性、完整性、一致性、安全保密性&#xff09;数据库设计的内容 数据…

Ajax — 第五天

Ajax-05 xhr&#xff08;level-2&#xff09;新特性 responseType属性和response属性 responseType: 表示预期服务器返回的数据的类型 “” &#xff0c;默认空text&#xff0c;和空一样&#xff0c;表示服务器返回的数据是字符串格式json&#xff0c;表示服务器返回的是js…

Swift傻傻分不清楚系列(十)枚举

本页内容包含&#xff1a; 枚举语法&#xff08;Enumeration Syntax&#xff09;使用 Switch 语句匹配枚举值&#xff08;Matching Enumeration Values with a Switch Statement&#xff09;关联值&#xff08;Associated Values&#xff09;原始值&#xff08;Raw Values&…

数据库系统原理(第四章:SQL与关系数据库基本操作 )

一、SQL概述 sql是结构化查询语言&#xff08;Structured Query Language&#xff0c;SQL&#xff09;是专门用来与数 据库通信的语言&#xff0c;它可以帮助用户操作关系数据库。 SQL的特点&#xff1a; SQL不是某个特定数据库供应商专有的语言&#xff1b; SQL简单易学 &…

selenium操作浏览器窗口最大化和刷新

实际测试过程中经常遇到打开一个页面并不是全屏显示&#xff0c;但是却希望它能够全屏显示或者新增一条记录后需要刷新一下看能不能再列表中正常显示。 于是就有了今天的关于对浏览器窗口的最大化和刷新页面。需要说明的一点&#xff1a;所有和python相关的记录都是基于3.6版本…

Git安装步骤+Mac终端配置

Git安装步骤 其实可以直接略过。因为安装的时候&#xff0c;一路 next 即可。 注意&#xff0c;安装路径中不能出现中文。安装完成后&#xff0c;不得更改安装路径。 检查Git是否安装成功 在任何文件夹&#xff0c;空白处&#xff0c;右键。如果看到 “Git Bash Here”&#xf…

数据库系统原理(第5章:数据库编程)

一、存储过程 概念&#xff1a;存储过程是一组为了完成某项特定功能的SQL语句集&#xff0c; 其实质就是一段存储在数据库中的代码。 它可以由声明式的sql语句和过程式sql语句组成。 特点&#xff1a; 可增强SQL语言的功能和灵活性良好的封装性高性能可减少网络流量可作为一种安…

科学-中医:儒医

ylbtech-科学-中医&#xff1a;儒医"儒医"是一种历史悠久的社会文化现象。阐释了"儒医"的三重境界,即良医、大医、圣医。"良医"注重技,属于知识论,追求的是"真";"大医"注重德,属于道德论,追求的是"善";"圣医…

Ajax — 第六天

Ajax-06 GET和POST的区别 字面意思不同 GET 是获取意思。想从服务器获取数据&#xff0c;用GET方式的请求POST是邮递、邮寄意思。如果提交数据到服务器&#xff0c;用POST方式 请求参数位置不同 GET 请求参数会和url拼接到一起&#xff0c;形如 api/getbooks?id2&age3PO…

iOS Tips 模拟器屏幕截图

当我们发布app到AppStore的时候&#xff0c;在itunes connect里面&#xff0c;苹果官方要求我们提供各种尺寸的屏幕截图。由于受到硬件条件的限制&#xff0c;我们不可能在每个真实的物理机器上测试并截图&#xff0c;相反如果我们能直接在模拟器上进行屏幕截图的话&#xff0c…

数据库系统原理(第6章:数据库安全与保护)

一、数据库完整性 数据库完整性是指数据库中数据的正确性和相容性。 完整性约束条件的作用对象 列级约束&#xff1a; 包括对列的类型、取值范围、精度等的约束元组约束&#xff1a; 指元组中各个字段之间的相互约束表级约束&#xff1a; 指若干元组、关系之间的联系的约束定义…

.net core WebApi 使用Swagger生成API文档

关于 Swagger Swagger能成为最受欢迎的REST APIs文档生成工具之一&#xff0c;有以下几个原因&#xff1a; Swagger 可以生成一个具有互动性的API控制台&#xff0c;开发者可以用来快速学习和尝试API。Swagger 可以生成客户端SDK代码用于各种不同的平台上的实现。Swagger 文件可…

Git — 初体验

准备工作 版本管理软件 作用 记录代码的版本实现多人协作 分类 集中式&#xff0c;典型代表 SVN分布式&#xff0c;典型代表 Git 注册远程仓库账号 远程仓库相当于中央服务器我们需要在github上或码云上注册一个账号&#xff0c;用于创建远程仓库使用注册的时候&#xff0…

iOS CoreTelephony框架介绍与使用案列

昨晚看一篇文章时看到了私有API这个词&#xff0c;貌似开发者对私有API的使用很反感于是果断百度谷歌&#xff0c;以下是Stackoverflow中关于Private Frameworks的一个解释&#xff1a; Private frameworks are frameworks which you are not allowed to use. They are not exp…

JS数组的迭代器方法

迭代器forEachevery一、迭代器方法 迭代器方法&#xff0c; 这些方法对数组中的每一个元素应用一个函数&#xff0c;可以返回一个值&#xff0c;一组值或一个新数组。 不生成新数组的迭代器方法 1.forEach() forEach()输出 forEach输出结果2.every() 该方法按接受一个返回值为布…