Toggle navigation
在线编辑器
在线代码
文本比较
jQuery下载
前端库
在线手册
登录/注册
下载代码
html
css
js
分享到微信朋友圈
X
html
请打开您的音响,SpeechSynthesisUtterance是HTML5中新增的API,用于将指定文字合成为对应的语音.也包含一些配置项,指定如何去阅读(语言,音量,音调)等
css
@import url("https://s3.pstatp.com/cdn/expire-1-M/font-awesome/5.8.1/css/all.min.css"); @import url("https://fonts.googleapis.com/css2?family=Roboto&display=swap"); *, *:before, *:after { box-sizing: border-box; } ::-webkit-scrollbar { width: 8px; } ::-webkit-scrollbar-track { background: rgba(0,0,0,0.5); } ::-webkit-scrollbar-thumb { background: #ffcb9a; } ::-moz-selection { background: #e87e04; } ::selection { background: #e87e04; } body { padding: 0; margin: 0; width: 100vw; height: 100vh; background: -webkit-gradient(linear, left bottom, left top, from(#232526), to(#414345)); background: linear-gradient(to top, #232526, #414345); font-family: 'Roboto', sans-serif; font-size: 2vw; color: #fff; letter-spacing: 2px; line-height: 2; text-shadow: 2px 2px #111; overflow: hidden; } .info { margin: 10px; position: absolute; top: 0; left: 50%; -webkit-transform: translateX(-50%); transform: translateX(-50%); } .container { width: 100%; height: 100%; display: -webkit-box; display: flex; -webkit-box-pack: center; justify-content: center; -webkit-box-align: center; align-items: center; } @media screen and (max-width: 500px) { .container { -webkit-box-orient: vertical; -webkit-box-direction: normal; flex-direction: column; } } .speech { width: 33vw; height: 30vw; display: -webkit-box; display: flex; -webkit-box-pack: center; justify-content: center; -webkit-box-align: center; align-items: center; flex-wrap: wrap; overflow-y: auto; border: none; border-radius: 5px/5px; text-align: center; padding: 20px; resize: none; margin: 20px; } .speech:focus { outline: 0; } @media screen and (max-width: 500px) { .speech { font-size: 4vw; width: 90vw; } } .activate { margin: 20px; width: 33vw; height: 33vw; border-radius: 50%; color: #e87e04; font-size: 10vw; border: none; background: transparent; cursor: pointer; text-align: center; text-shadow: 3px 3px #111; } .activate:focus { outline: 0; } .parrot { width: 33vw; height: 33vw; display: grid; grid-template-rows: 1fr 1fr; grid-template-columns: 1fr 1fr; position: relative; margin: 20px; } .parrot:before { content: ''; width: 40%; height: 40%; background: #96281b; top: 1vw; left: 0.75vw; position: absolute; z-index: -4; border-radius: 100% 50% 0 5px; } .parrot .face-upper { grid-row: 1; grid-column: 1; background: #fff; width: 60%; height: 60%; align-self: end; justify-self: end; border-radius: 100% 0 0 0; position: relative; } .parrot .face-upper:before, .parrot .face-upper:after { content: ''; border-radius: 100% 0 0 0; position: absolute; } .parrot .face-upper:after { width: 140%; height: 140%; left: -40%; top: -40%; background: #f22613; z-index: -2; } .parrot .face-upper:before { width: 120%; height: 120%; left: -20%; top: -20%; background: #ec644b; z-index: -1; } .parrot .face-upper .eye { position: absolute; width: 37.5%; height: 37.5%; background: #000; right: 1vw; bottom: 2vw; border-radius: 50%; } .parrot .face-upper .eye:after { content: ''; width: 50%; height: 50%; border-radius: 50%; background: #fff; position: absolute; right: 0; } .parrot .mouth-upper { grid-row: 1; grid-column: 2; background: #f89406; width: 60%; height: 60%; align-self: end; border-radius: 0 100% 0 0; position: relative; -webkit-transform-style: preserve-3d; transform-style: preserve-3d; z-index: -5; } .parrot .mouth-upper.talking { -webkit-animation: talk 0.25s infinite; animation: talk 0.25s infinite; } .parrot .mouth-upper:before { content: ''; width: 140%; height: 140%; top: -40%; background: #f9bf3b; border-radius: 0 100% 0 0; -webkit-transform: translateZ(-1px); transform: translateZ(-1px); position: absolute; } .parrot .face-lower { grid-row: 2; grid-column: 1; background: #fff; width: 60%; height: 60%; justify-self: end; border-radius: 0 0 0 100%; position: relative; box-shadow: inset 0px 0px 200px 200px rgba(0,0,0,0.15); } .parrot .face-lower:after, .parrot .face-lower:before { content: ''; border-radius: 0 0 0 100%; position: absolute; box-shadow: inset 0px 0px 200px 200px rgba(0,0,0,0.15); } .parrot .face-lower:after { width: 140%; height: 140%; left: -40%; background: #f22613; z-index: -2; } .parrot .face-lower:before { width: 120%; height: 120%; left: -20%; background: #ec644b; z-index: -1; } .parrot .mouth-lower { width: 43%; height: 43%; background: #f89406; border-radius: 0 0 100% 0; position: relative; z-index: -5; box-shadow: inset 0px 0px 200px 200px rgba(0,0,0,0.15); -webkit-transform-style: preserve-3d; transform-style: preserve-3d; } .parrot .mouth-lower.talking { -webkit-animation: talk-2 0.25s infinite; animation: talk-2 0.25s infinite; } .parrot .mouth-lower:before { content: ''; width: 140%; height: 140%; background: #f9bf3b; border-radius: 0 0 100% 0; box-shadow: inset 0px 0px 200px 200px rgba(0,0,0,0.15); position: absolute; -webkit-transform: translateZ(-1px); transform: translateZ(-1px); } @-webkit-keyframes talk { 0% { -webkit-transform: rotateZ(0deg) translateX(0px) translateY(0px); transform: rotateZ(0deg) translateX(0px) translateY(0px); } 50% { -webkit-transform: rotateZ(-10deg) translateX(-8%) translateY(-6%); transform: rotateZ(-10deg) translateX(-8%) translateY(-6%); } 100% { -webkit-transform: rotateZ(0deg) translateX(0px) translateY(0px); transform: rotateZ(0deg) translateX(0px) translateY(0px); } } @keyframes talk { 0% { -webkit-transform: rotateZ(0deg) translateX(0px) translateY(0px); transform: rotateZ(0deg) translateX(0px) translateY(0px); } 50% { -webkit-transform: rotateZ(-10deg) translateX(-8%) translateY(-6%); transform: rotateZ(-10deg) translateX(-8%) translateY(-6%); } 100% { -webkit-transform: rotateZ(0deg) translateX(0px) translateY(0px); transform: rotateZ(0deg) translateX(0px) translateY(0px); } } @-webkit-keyframes talk-2 { 0% { -webkit-transform: rotateZ(0deg) translateX(0px) translateY(0px); transform: rotateZ(0deg) translateX(0px) translateY(0px); } 50% { -webkit-transform: rotateZ(10deg) translateX(-8%) translateY(6%); transform: rotateZ(10deg) translateX(-8%) translateY(6%); } } @keyframes talk-2 { 0% { -webkit-transform: rotateZ(0deg) translateX(0px) translateY(0px); transform: rotateZ(0deg) translateX(0px) translateY(0px); } 50% { -webkit-transform: rotateZ(10deg) translateX(-8%) translateY(6%); transform: rotateZ(10deg) translateX(-8%) translateY(6%); } }
JavaScript
let ssu; let voices; $(document).ready(function() { initSpeechSynthesis(); }); $(".activate").on("click", function() { $("[class^='mouth']").toggleClass("talking"); ssu.text = $(".speech").text(); window.speechSynthesis.speak(ssu); ssu.onend = function(event) { $("[class^='mouth']").toggleClass("talking"); }; }); function initSpeechSynthesis() { if (!('speechSynthesis' in window)) { alert("Sorry, your browser doesn't support text to speech!"); return; } ssu = new SpeechSynthesisUtterance(); ssu.lang = 'zh-CN'; ssu.volume = 0.75; };
粒子
时间
文字
hover
canvas
3d
游戏
音乐
火焰
水波
轮播图
鼠标跟随
动画
css
加载动画
导航
菜单
按钮
滑块
tab
弹出层
统计图
svg
×
Close
在线代码下载提示
开通在线代码永久免费下载,需支付20jQ币
开通后,在线代码模块中所有代码可终身免费下!
您已开通在线代码永久免费下载,关闭提示框后,点下载代码可直接下载!
您已经开通过在线代码永久免费下载
对不起,您的jQ币不足!可通过发布资源 或
直接充值获取jQ币
取消
开通下载
<!doctype html> <html> <head> <meta charset="utf-8"> <title>语音合成使用-jq22.com</title> <script src="https://www.jq22.com/jquery/jquery-1.10.2.js"></script> <style>
</style> </head> <body>
<script>
</script>
</body> </html>
2012-2021 jQuery插件库版权所有
jquery插件
|
jq22工具库
|
网页技术
|
广告合作
|
在线反馈
|
版权声明
沪ICP备13043785号-1
浙公网安备 33041102000314号