久久精品五月,日韩不卡视频在线观看,国产精品videossex久久发布 ,久久av综合

站長資訊網(wǎng)
最全最豐富的資訊網(wǎng)站

帶你使用CSS+jQuery實(shí)現(xiàn)一個文字轉(zhuǎn)語音機(jī)器人

本篇文章手把手帶大家使用CSS+jQuery實(shí)現(xiàn)一個文字轉(zhuǎn)語音機(jī)器人,希望對大家有所幫助!

帶你使用CSS+jQuery實(shí)現(xiàn)一個文字轉(zhuǎn)語音機(jī)器人

前端(vue)入門到精通課程:進(jìn)入學(xué)習(xí)
Apipost = Postman + Swagger + Mock + Jmeter 超好用的API調(diào)試工具:點(diǎn)擊使用

素材

  • 機(jī)器人眼睛

    帶你使用CSS+jQuery實(shí)現(xiàn)一個文字轉(zhuǎn)語音機(jī)器人

【推薦學(xué)習(xí):css視頻教程、jQuery視頻教程、web前端視頻】

頁面布局

機(jī)器人樣式參考了下圖,通過css拼造型的方式進(jìn)行實(shí)現(xiàn)。部分還原了設(shè)計圖

帶你使用CSS+jQuery實(shí)現(xiàn)一個文字轉(zhuǎn)語音機(jī)器人

  • 頭頂部分 頭頂部分是一個圓+偽類after實(shí)現(xiàn)白點(diǎn)

 <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);   }
登錄后復(fù)制

整體布局采用絕對定位布局 利用整個頭部,實(shí)現(xiàn)耳朵和眼睛的定位

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

  • 立體效果 通過box-shadow 的inset特性,通過適當(dāng)偏移x,y軸,實(shí)現(xiàn)內(nèi)陰影的立體效果

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

  • 文字轉(zhuǎn)語音實(shí)現(xiàn)

基于瀏覽器提供的SpeechSynthesisUtterance Api進(jìn)行實(shí)現(xiàn)

SpeechSynthesisUtterance基本屬性

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

SpeechSynthesisUtterance.text基本方法

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

為按鈕添加點(diǎn)擊事件,獲取input輸入框的值,并進(jìn)行播放,添加眼睛動畫,并在播放結(jié)束的回調(diào)移除眼睛動畫

$('#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)     })
登錄后復(fù)制

動畫類:

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

完整代碼:

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">點(diǎn)擊朗讀</div>   </div> </body>
登錄后復(fù)制

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)     })   })
登錄后復(fù)制

贊(0)
分享到: 更多 (0)
?
網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號
久久精品五月,日韩不卡视频在线观看,国产精品videossex久久发布 ,久久av综合
麻豆91在线播放| 中文字幕一区二区三区四区久久| 国产传媒av在线| 国产探花在线精品一区二区| 久久福利一区| 亚洲欧美日本国产专区一区| 日本中文字幕视频一区| 中国女人久久久| 视频一区视频二区中文| 好吊日精品视频| 18国产精品| 国产 日韩 欧美一区| 欧美成人精品| 国产精品视频3p| 91成人在线| 国产精品4hu.www| 六月丁香综合| 蜜桃成人av| 日韩av中文字幕一区| 高清av不卡| 99视频在线精品国自产拍免费观看| 在线一区免费| 久久久久91| 亚洲一区二区三区高清不卡| 欧美在线影院| 欧美成人精品午夜一区二区| 亚洲精品高潮| 国产伊人久久| 视频一区国产视频| 亚洲先锋成人| 狠狠色综合网| 国产精品视频一区二区三区| 日韩av资源网| 国产不卡av一区二区| 日韩欧美一区免费| 日本在线高清| 日韩激情视频网站| 欧美中文字幕| 精品高清久久| 国产欧美一区| 日韩三级久久| 国产午夜一区| 激情婷婷久久| 三级久久三级久久久| 久久麻豆视频| 国产精品腿扒开做爽爽爽挤奶网站| 国产手机视频一区二区| 午夜国产一区二区| 欧美日本不卡| 日韩欧美三级| 天堂va在线高清一区| 亚洲区第一页| 精品三级av在线导航| 国产一区二区三区自拍| 人人爽香蕉精品| 国产视频欧美| 国产91在线精品| 高清av一区| 日本亚洲视频在线| 香蕉久久久久久| 吉吉日韩欧美| 日韩高清不卡一区| 中国女人久久久| 午夜av不卡| 99热精品久久| 蜜桃视频在线网站| 欧美激情三区| 国产91欧美| 日韩精品诱惑一区?区三区| 国产欧美日韩影院| 日韩精品诱惑一区?区三区| 日韩一区亚洲二区| 欧美不卡高清| 国产一区二区三区黄网站| 亚欧成人精品| 午夜久久av| 精品在线91| 黄色在线一区| 91成人精品在线| 国产在线观看91一区二区三区| 国产综合色区在线观看| 国产精品午夜av| 精品国产91| 欧美精品一卡| 美女国产一区| 日韩中文欧美在线| 日韩一区免费| 亚洲二区精品| 国产精品66| av不卡免费看| 91精品国产乱码久久久久久久| 国产午夜精品一区在线观看| 国产乱人伦精品一区| 日韩精品一区二区三区av| 麻豆91在线播放| 免费国产自线拍一欧美视频| 午夜精品免费| 亚洲精品亚洲人成在线观看| 亚洲天堂av影院| 日韩啪啪电影网| 日韩精品诱惑一区?区三区| 好看不卡的中文字幕| 亚洲天堂av资源在线观看| 三上亚洲一区二区| 日韩精品久久久久久| 精品欠久久久中文字幕加勒比| 日本黄色精品| 蜜臀av一区二区在线免费观看| 欧美日一区二区三区在线观看国产免| 91亚洲无吗| 久久久久免费| 国产精品原创| 亚洲精品动态| 蜜桃视频一区二区三区| 美女国产一区| 三级亚洲高清视频| 国产探花在线精品| 国产黄大片在线观看| 黑丝一区二区| 午夜av不卡| 伊人精品在线| 国产精品66| 97久久精品| 伊人久久大香线蕉av不卡| 久久久成人网| 国产亚洲欧美日韩在线观看一区二区| 午夜国产欧美理论在线播放| 中文精品视频| 亚洲精品极品少妇16p| 99久久久久久中文字幕一区| 免费精品国产| 国产成人免费| 99精品美女| 中文字幕中文字幕精品| 久久国产精品99国产| 日韩精选在线| 国产精品成人自拍| 日韩手机在线| 亚洲二区在线| 久久精品国产久精国产爱| 欧美激情五月| 亚洲福利一区| 日韩中文欧美在线| 国产精品久久久免费| 日韩成人免费| 精品久久91| 美女视频网站久久| 国产乱码午夜在线视频| 快she精品国产999| 国产精品sm| 91九色精品国产一区二区| 午夜久久av| 欧美/亚洲一区| 日韩欧美四区| 国产欧美日韩在线一区二区| 久久在线视频免费观看| 偷拍亚洲精品| 国产欧美日韩在线观看视频| 天堂8中文在线最新版在线| 婷婷激情综合| 日韩欧美久久| 久久激情婷婷| 国产成人久久精品麻豆二区| 蜜臀精品久久久久久蜜臀| 久久麻豆视频| 日韩成人av影视| 伊人久久大香线蕉av超碰演员| 国产精品久av福利在线观看| 日韩欧美不卡| 精品一区视频| 国产精品99久久免费| 在线观看亚洲精品福利片| 国际精品欧美精品| 日av在线不卡| 91精品精品| 九九九精品视频| 日韩在线卡一卡二| 丝袜国产日韩另类美女| 亚洲网站视频| 亚洲综合在线电影| 欧美精品第一区| 高清一区二区三区| 亚洲高清二区| 国产精品成人自拍| 午夜亚洲福利| 自由日本语亚洲人高潮| 国产日韩视频| 久久大逼视频| 精品美女视频 | 亚洲欧洲日韩| 亚洲精品麻豆| 国产精品白浆| 欧美精品羞羞答答| 国产农村妇女精品一二区| 国产精品观看| 日韩精品视频网| 蜜桃一区二区三区在线| 中文字幕日韩高清在线| 五月婷婷六月综合| 欧美日韩视频免费观看|