启用翻译中的遮罩层
在执行翻译时,浏览器本地缓存没有,需要走API接口时,这个API接口会有网络延迟,比如有1、2秒延迟的话,然后等翻译API拿到结果后再显示到网页,对用户来说,他看到的就是先出现原语种一两秒,然后又变成了翻译后的文本。
本能力就是解决这个问题,在翻译的这段时间,会在原语种的元素上面显示一层加载中的动画效果,让用户知道这段文本正在进行处理中。 而不需要走翻译API接口的部分,则不会显示这个加载中的动画效果。
它并不会影响你本身网页的阅读观看,它的作用是给用户一个友好提示,免得让用户感觉是你网页有问题。
使用方式
简单使用
增加一行代码,用以标记启用此能力:
translate.progress.api.startUITip();
自定义样式
translate.progress.style=`
/* CSS部分 */
/* 灰色水平加载动画 */
.translate_api_in_progress {
position: relative;
overflow: hidden; /* 隐藏超出部分的动画 */
}
/* 蒙版层 */
.translate_api_in_progress::after {
content: '';
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: rgba(255, 255, 255, 1); /* 半透明白色遮罩 */
z-index: 2;
}
/* 水平加载条动画 */
.translate_api_in_progress::before {
content: '';
position: absolute;
top: 50%;
left: 0;
width: 100%;
height:100%; /* 细线高度 */
background: linear-gradient(
90deg,
transparent 0%,
#e8e8e8 25%, /* 浅灰色 */
#d0d0d0 50%, /* 中灰色 */
#e8e8e8 75%, /* 浅灰色 */
transparent 100%
);
background-size: 200% 100%;
animation: translate_api_in_progress_horizontal-loader 3.5s linear infinite;
z-index: 3;
transform: translateY(-50%);
}
@keyframes translate_api_in_progress_horizontal-loader {
0% {
background-position: 200% 0;
}
100% {
background-position: -200% 0;
}
}
`;
translate.progress.api.startUITip();
你可以更改其中的 translate.progress.style
的css样式,来自定义当文本翻译中时,文本的css显示效果
注意
- 它要放在
translate.execute();
的前面 - 需要 translate.js v3.16 及更高版本才支持
- 使用大模型翻译的场景,此能力尤其明显。