◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。
本篇文章手把手带大家使用css+jquery实现一个文字转语音机器人,希望对大家有所帮助!
机器人眼睛
【推荐学习:css视频教程、jQuery视频教程、web前端视频】
立即学习“前端免费学习笔记(深入)”;
机器人样式参考了下图,通过css拼造型的方式进行实现。部分还原了设计图
<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: -5px -5px 30px 1px #0075af inset;
基于浏览器提供的SpeechSynthesisUtterance Api进行实现
为按钮添加点击事件,获取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
<div class="head"> <div class="erduo"></div> <div class="erduo"></div> <div class="face"> <div class="eye"></div> <div class="eye"></div> </div> </div>点击朗读
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) }) })
更多编程相关知识,请访问:编程教学!!
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。