javascript - Safari没有在css动画上方重新绘制元素
问题描述
我的代码如下所示:
var text = document.getElementById('text');
var toggle = true;
setInterval(function(){
if (toggle){
text.innerHTML = 'text1';
} else {
text.innerHTML = 'text2';
}
toggle = !toggle;
}, 500)
#text{
position: relative;
background-color: white;
z-index: 2;
padding: 0 10px;
}
#marqueeContainer{
z-index: 1;
}
@keyframes marquee{
from {
transform: translateX(100%);
}
to {
transform: translateX(-100%);
}
}
#marquee {
animation: marquee 10s linear infinite;
display: inline-block;
}
<span id="text">
text
</span>
<span id="marqueeContainer">
<span id="marquee">
marquee
marquee
marquee
marquee
marquee
</span>
</span>
或看这里: https ://codepen.io/jacquesknie/pen/ZEExZNy
有一个用 setInterval 切换的文本,一旦在 Safari 下运行动画,它就不会更新/重新绘制文本。Chrome 和 Firefox 运行良好。发生了什么事,我是否忽略了一些明显的东西?
非常感谢,雅克
解决方案
在 Safari 上,您必须使用
@-webkit-keyframes
推荐阅读
- javascript - 如何使用 Javascript 监听值变化的特定键?
- javascript - 通过计算字符长度将 JS 数组拆分和连接成块
- javascript - 广告未呈现
- json - Jq 在使用 AWS Secrets Manager 解析时添加额外的双引号
- c# - ServiceStack.Redis:所有 MQ 请求处理程序的一个线程池?
- python - 列表理解以删除不需要的对象。验证它按预期工作
- php - 从肥皂响应中提取价值
- ios - 在 contentSize 超过 visibleSize 之前,垂直 UIScrollView 不可交互
- php - 计算用户点击 WordPress 中某个按钮的次数
- spring-boot - REST API 在邮递员中工作,但在 Spring Boot 中不工作