Ajax小项目

聊天机器人项目:

项目演示效果:

Ajax小项目_第1张图片

主要页面结构通过使用UI布局





  
  
  
  
  
  
  
  
  聊天机器人



  

小思同学

icon
  • 嗨,最近想我没有?

 其中除chat.js代码为业务代码都为下载代码组件链接如下:

jQuery代码:https://jquery.com/download/

 jQuery中UI库详细下载:jQuery UI 下载 | 菜鸟教程 (runoob.com)

chat.js代码内容如下:

本项目主要是对于接口的请求进行操作

$(function () {
  // 初始化右侧滚动条
  // 这个方法定义在scroll.js中
  resetui()

  // 为发送按钮绑定鼠标点击事件
  $('#btnSend').on('click', function () {
    var text = $('#ipt').val().trim()//获取发送的内容
    if (text.length <= 0) {
      return $('#ipt').val('')//如果空白就清空
    }
    // 如果用户输入了聊天内容,则将聊天内容追加到页面上显示
    $('#talk_list').append('
  • ' + text + '
  • ') $('#ipt').val('')//进行清空输入框 // 重置滚动条的位置 resetui() // 发起请求,获取聊天内容 getMsg(text) }) // 获取聊天机器人发送回来的消息 function getMsg(text) { $.ajax({ method: 'GET', url: 'https://ajax-base-api-t.itheima.net/api/robot', data: { spoken: text }, success: function (res) { // console.log(res) if (res.message === 'success') { // 接收聊天消息 var msg = res.data.info.text $('#talk_list').append('
  • ' + msg + '
  • ') // 重置滚动条的位置 resetui() // 调用 getVoice 函数,把文本转化为语音 getVoice(msg) } } }) } // 把文字转化为语音进行播放 function getVoice(text) { $.ajax({ method: 'GET', url: 'https://ajax-base-api-t.itheima.net/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() } }) })

    其他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;    
    }
    body,ul,h1,h2,h3,h4,h5,h6{
        margin: 0;
        padding: 0;
    }
    h1,h2,h3,h4,h5,h6{
        font-size:100%;
        font-weight:normal;
    }
    a{
        text-decoration:none;
    }
    ul{
        list-style:none;
    }
    img{
        border:0px;
    }
    
    /* 清除浮动,解决margin-top塌陷 */
    .clearfix:before,.clearfix:after{
        content:'';
        display:table;    
    }
    .clearfix:after{
        clear:both;
    }
    .clearfix{
        zoom:1;
    }
    
    .fl{
        float:left;
    }
    .fr{
        float:right;
    }
    

    你可能感兴趣的:(笔记,ajax,javascript,前端)