成人怡红院-成人怡红院视频在线观看-成人影视大全-成人影院203nnxyz-美女毛片在线看-美女免费黄

站長資訊網
最全最豐富的資訊網站

帶你使用CSS+jQuery實現一個文字轉語音機器人

本篇文章手把手帶大家使用CSS+jQuery實現一個文字轉語音機器人,希望對大家有所幫助!

帶你使用CSS+jQuery實現一個文字轉語音機器人

前端(vue)入門到精通課程:進入學習
Apipost = Postman + Swagger + Mock + Jmeter 超好用的API調試工具:點擊使用

素材

  • 機器人眼睛

    帶你使用CSS+jQuery實現一個文字轉語音機器人

【推薦學習:css視頻教程、jQuery視頻教程、web前端視頻】

頁面布局

機器人樣式參考了下圖,通過css拼造型的方式進行實現。部分還原了設計圖

帶你使用CSS+jQuery實現一個文字轉語音機器人

  • 頭頂部分 頭頂部分是一個圓+偽類after實現白點

 <div class="tianxian"></div>  .tianxian{     width: 35px;     height: 35px;     border-radius: 50%;     background: #0e58cc;     position: absolute;     left: 0;     right: 0;     top: 0;     margin: auto;   }   .tianxian::after{     content: '';     display: block;     width: 5px;     height: 10px;     border-radius: 12px;     background: #fff;     position: absolute;     top: 10px;     left: 5px;     transform: rotateZ(20deg);   }
登錄后復制

整體布局采用絕對定位布局 利用整個頭部,實現耳朵和眼睛的定位

<div class="head">       <div class="erduo"></div>       <div class="erduo"></div>       <div class="face">         <div class="eye"></div>         <div class="eye"></div>       </div>     </div>
登錄后復制

  • 立體效果 通過box-shadow 的inset特性,通過適當偏移x,y軸,實現內陰影的立體效果

 box-shadow: -5px -5px 30px 1px #0075af inset;
登錄后復制

  • 文字轉語音實現

基于瀏覽器提供的SpeechSynthesisUtterance Api進行實現

SpeechSynthesisUtterance基本屬性

  • SpeechSynthesisUtterance.lang 獲取并設置話語的語言
  • SpeechSynthesisUtterance.pitch 獲取并設置話語的音調(值越大越尖銳,越低越低沉)
  • SpeechSynthesisUtterance.rate 獲取并設置說話的速度(值越大語速越快,越小語速越慢)
  • SpeechSynthesisUtterance.text 獲取并設置說話時的文本
  • SpeechSynthesisUtterance.voice 獲取并設置說話的聲音
  • SpeechSynthesisUtterance.volume 獲取并設置說話的音量

SpeechSynthesisUtterance.text基本方法

  • speak() 將對應的實例添加到語音隊列中
  • cancel() 刪除隊列中所有的語音.如果正在播放,則直接停止
  • pause() 暫停語音
  • resume() 恢復暫停的語音

為按鈕添加點擊事件,獲取input輸入框的值,并進行播放,添加眼睛動畫,并在播放結束的回調移除眼睛動畫

$('#btn').click(function () {       let text = $('#input').val()       if (text) {         $('.eye').addClass('shine')       }       let u = new window.SpeechSynthesisUtterance()       u.text = text       u.lang = 'zh'       u.rate = 0.7       u.onend = function () {         $('.eye').removeClass('shine')       }       speechSynthesis.speak(u)     })
登錄后復制

動畫類:

 .shine {     animation: shine 1s linear infinite;   }   @keyframes shine {     0%{       height: 100px;     }     100%{       height: 0px;     }   }
登錄后復制

完整代碼:

HTML+CSS

<style>   * {     margin: 0;     padding: 0;     list-style: none;     box-sizing: border-box;   }    html,   body {     width: 100%;     height: 100%;     overflow: hidden;     background: #000;   }   .robot{     width: 658px;     height:800px;     position: absolute;     left: 0;     right: 0;     margin: auto;     top: 0;     bottom: 0;   }   .tianxian{     width: 35px;     height: 35px;     border-radius: 50%;     background: #0e58cc;     position: absolute;     left: 0;     right: 0;     top: 0;     margin: auto;   }   .tianxian::after{     content: '';     display: block;     width: 5px;     height: 10px;     border-radius: 12px;     background: #fff;     position: absolute;     top: 10px;     left: 5px;     transform: rotateZ(20deg);   }   .gun{     width: 5px;     height: 30px;     background:#0075af ;     position: absolute;     left: 0;     right: 0;     top: 35px;     margin: auto;   }   .gai{     width: 60px;     height: 60px;     background: #fff;     box-shadow: -5px -5px 30px 1px #0075af inset;     position: absolute;     left: 0;     right: 0;     top: 65px;     margin: auto;     border-radius: 50%;   }   .head{     width: 370px;     height: 350px;     position: absolute;     left: 0;     right: 0;     top: 95px;     margin: auto;     border-radius: 70px;     background: #fff;     box-shadow: -5px -5px 30px 1px #0075af inset;   }   .erduo{     width: 60px;     height: 180px;     background: #0022b0;     position: absolute;     top: 0;     bottom: 0;     margin: auto 0;     border-radius: 60px;     border-top: 4px solid #0e9df9;     border-bottom: 4px solid #0e9df9;     box-shadow: -5px -5px 30px 1px #0075af inset;   }   .erduo:nth-child(1) {     border-left: 4px solid #0e9df9;     left: -40px;   }   .erduo:nth-child(2){     border-right: 4px solid #0e9df9;     right: -40px;     box-shadow: -5px -5px 30px 1px #0075af inset;   }   .face{     width: 288px;     height: 244px;     background: #03192f;     position: absolute;     left: 0;     right: 0;     top: 0;     bottom: 0;     margin: auto;     border-radius: 60px;     box-shadow: -5px -5px 30px 1px #0075af inset;   }   .eye{     width: 30px;     height: 100px;     background-image: url('https://p6-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/41c21816e3c740eaa43ade57de3eb5a5~tplv-k3u1fbpfcp-watermark.image');     background-size: contain;     position: absolute;     top: 0;     bottom: 0;     margin: auto;   }   .eye:nth-child(1){     left: 60px;   }   .eye:nth-child(2){     right: 60px;   }   .trans{     width:370px;     position: absolute;     display: flex;     justify-content: center;     align-items: center;     color: #fff;     left: 0;     right: 0;     margin: auto;     top:  600px;     font-size: 16px;   }   #input{     margin-right: 10px;     background: transparent;     border: none;     outline: none;     color: #fff;     border-bottom: 1px dashed #fff;     height: 40px;    }   #btn{     cursor: pointer;   }   .shine {     animation: shine 1s linear infinite;   }   @keyframes shine {     0%{       height: 100px;     }     100%{       height: 0px;     }   } </style> <body>     <div class="robot">     <div class="tianxian"></div>     <div class="gun"></div>     <div class="gai"></div>     <div class="head">       <div class="erduo"></div>       <div class="erduo"></div>       <div class="face">         <div class="eye"></div>         <div class="eye"></div>       </div>     </div>   </div>   <div class="trans">     <input id="input" type="text">     <div id="btn">點擊朗讀</div>   </div> </body>
登錄后復制

js

 $(function () {     $('#btn').click(function () {       let text = $('#input').val()       if (text) {         $('.eye').addClass('shine')       }       let u = new window.SpeechSynthesisUtterance()       u.text = text       u.lang = 'zh'       u.rate = 0.7       u.onend = function () {         $('.eye').removeClass('shine')       }       speechSynthesis.speak(u)     })   })
登錄后復制

贊(0)
分享到: 更多 (0)
?
網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
少妇人妻无码精品视频APP| 体验区试看120秒十八禁| 日韩熟妇无码字幕视频毛片| 三级成人AV电影在线观看| 玩弄朋友娇妻呻吟交换电影| 亚洲AV无码成人影片在线观看| 亚洲精品成人H在线观看| 野花社区日本韩国免费观看| 2021精品久久久久精品免费网| 97人人模人人爽人人少妇| 超碰97人人做人人爱亚洲尤物| 国产成人无码AV在线播放DVD| 国产午夜福利精品久久| 久久久久久人妻精品一区| 欧美激情综合色综合啪啪五月| 日产无人区一线二线三线小说| 无码成人AⅤ免费中文字幕| 亚洲国产欧美在线人成最新| 中文字幕精品一区二区精品| 成人18禁在线播放| 国产日韩精品SUV| 老奶奶能叫WOMAN吗| 日本熟妇色XXXXX| 亚洲AV无码无在线观看| 婬乱丰满熟妇XXXXX性| 被公疯狂进入的美丽人妻| 国产无遮挡又黄又大又爽| 里面也请好好疼爱五集| 日产乱码一二三区别免费下载| 午夜亚洲AⅤ无码高潮片在线观看 午夜亚洲AⅤ无码高潮片苍井空 | 岳今晚让我玩个够肥水一体探岳体| XXXXX69HD护士19老师| 国产熟女乱子视频正在播放| 裸身美女无遮挡永久免费视频| 日本最新高清一区二区三| 亚洲AV无码成人网站国产网站| 中文字幕人成乱码中国| 国产成人国拍亚洲精品| 久久久久久国产精品无码下载| 任你躁久久精品6| 亚洲国产精品无码专区成人| JAPANESE国产中文在线观| 国产乱妇乱子视频在播放| 久久亚洲熟妇熟女ⅩXXX| 色AV永久无码影院AV| 亚洲啪AV永久无码精品放毛片| А√天堂中文官网在线BT| 国自产拍偷拍精品啪啪AV| 欧美成人A天堂片在线观看| 西方37大但人文艺术A管77| √天堂资源中文WWW| 国产精品线在线精品| 免费无码高潮喷水AⅤ片在线| 偷偷色噜狠狠狠狠的777米奇| 在线观看国产一区二区三区| 国产丰满大屁股XXXX| 免费观看的A级毛片的网站| 午夜性色一区二区三区不卡视频| 60老妇VIDEOXXX| 国内精品伊人久久久久妇| 強暴強姦AV正片一区二| 亚洲精品综合欧美一区二区三区| 成人性色生活片免费看爆迷你| 久久精品国产亚洲AV麻豆王友容 | 中国熟妇牲交视频| 国产日产欧产精品精乱了派| 欧洲一本到卡二卡三卡乱码| 亚洲欧洲日产国码无码AV喷潮| 成人无码区免费AⅤ片丝瓜视频| 久久人人爽人人爽人人片AV| 无码人妻AⅤ一区 二区 三区| 99福利资源久久福利资源| 狠狠躁夜夜人人爽天96| 日韩人妻在线一区二区三区| 在公交车上弄到高C了怎么办 | 人妻人人爽人人澡人人喊| 亚洲中文字幕无码不卡电影| 国产精品免费高清在线观看| 强壮公把我一次次弄上高潮| 亚洲在AV人极品无码网站| 国产精品久免费的黄网站| 欧美性猛交内射兽交老熟妇| 亚洲日韩一区二区一无码 | 玩弄肥美高大的熟妇| AV人摸人人人澡人人超碰手机版| 精品无码乱码AV| 无遮挡国产高潮视频免费观看| 把腿扒开做爽爽视频| 麻豆精品传媒一二三区艾秋| 亚洲成AV人片天堂网无码| 国产99久久久国产无需播放器 | 国产高清在线精品一区二区三区| 欧美人妻兽交V1DE0S| 一本之道AV不卡精品| 好喜欢你呐[校园] 里恩ER| 天天躁日日躁狠狠躁一区| 被三个男人绑着躁我好爽| 免费人成视频XVIDEOS| 亚洲中文字幕AV无码区| 黑人巨鞭大战丰满少妇| 无码日韩人妻精品久久| 东京热人妻无码人AV| 人畜禽CROPROATION| 2019日韩中文字幕MV| 久久久亚洲综合久久久久87| 亚洲国产成人无码影片在线播放 | 久亚洲一线产区二线产区三线产区| 亚洲成A人片77777KKKK| 国产手机AV片在线无码观你| 天天躁日日躁狠狠躁2018| 吃了继兄开的药后我做的梦更长了 | 亚洲中文字幕乱码AV波多JI| 交换朋友夫妻客厅互换4韩国 | 国产又色又爽又黄的在线观看 | 国产偷窥熟女高潮精品视频| 玩两个丰满老熟女久久网| 成人毛片100部免费看| 人妻精品久久久久中文字幕69| ASS黑森林PIC| 欧美熟妇黑人ⅩXXXXX| 99RE6热这里只精品首页| 免费无码AV污污污在线观看| 中文字幕天天躁日日躁狠狠躁免费| 看久久久久久A级毛片| 夜夜躁狠狠躁日日躁2002| 久久久久无码精品国产| 一区二区三区高清AV专区| 久久无码一区二区| 在线精品一区二区三区| 猫咪WWW免费人成人入口| 制服中字人妻中字出轨中字| 老师趴讲台屁股撅起来作文| 中国性猛交ⅩXXX免费看| 免费又黄又硬又爽大片免费| 51精产国品一二三产区区| 欧美成人A天堂片在线观看| 99国产欧美久久久精品蜜桃| 欧美人妻精品一区二区| 被两个老头咬住吃奶野战| 日韩v亚洲v欧美v精品综合| 丰满少妇偷人51视频在线观看| 书房双乳晃动干柴烈火| 国产乱码精品一区二区三区中文 | 亚洲AV日韩AV无码AV一区二| 狠狠噜天天噜日日噜视频跳一跳| 亚洲精品无码AV中文字幕| 久久久久国产精品熟女影院| 中国老妇XXXX性开放| 欧美人与动XXXXZ0OZ| 成人无码区免费AⅤ片WWW软件| 四川老妇女乱HD| 国内大量揄拍人妻在线视频| 亚洲人妻免费视频| 免费高清视频 大片| 八戒八戒WWW资源高清| 四虎影视成人永久免费观看视频| 国产台湾无码AV片在线观看| 亚洲日韩欧洲无码A∨夜夜| 免费观看18禁欲无遮挡奶水下| ZOOM与人性ZOOM2023| 少妇一晚三次一区二区三区| 国产啪精品视频网站免费尤物| 亚洲女人被黑人巨大进入| 美女无遮挡直播软件免费看| А√天堂资源最新版在线官网 | 18禁超污无遮挡无码免费动态图| 青青草原综合久久大伊人精品| 闺蜜张开腿让我爽了一夜| 亚洲AV无码精品狠狠爱| 久久午夜伦鲁片免费无码| XXXX18一20岁HD第一次| 无码国产精品一区二区VR老人| 精品国产AⅤ一区天美传媒| 最新版天堂资源官网在线| 日韩人妻无码精品一专区| 国精产品一区二区三区| 岳两片肥美的蚌肉| 色窝窝无码一区二区三区成人网站| 国产精品无码素人福利| 野花社区影视在线WWW官网| 欧美猛少妇色XXXXX猛交| 国产成人无码AⅤ片在线观看| 亚洲精品第一国产综合精品99| 妺妺窝人体色WWW聚色窝丿| 丰满人妻无码∧V区视频| 亚洲国产美女久久久久| 欧美黑人又大又粗XXXX| 国产成人18黄网站| 亚洲线精品一区二区三八戒| 人妻av无码一区二区三区| 国产精品亚洲АV无码播放| 在线日产精品一区| 少妇乳大丰满在线播放| 久久精品国产亚洲AV水果派| となりの家のネツト在线 | 没有被爱过的女人| 国产成人久久777777| 在线天堂8高清版在线观看| 熟妇人妻精品一区二区视频免费的| 久久精品国产99精品最新|