【发布时间】:2020-10-21 15:09:45
【问题描述】:
我有一个简单的 CSS3 translate() 代码,应该由 Javascript 触发。但它不会为翻译设置动画,它会立即跳转到该位置。如果我使用 css :hover 它会按预期工作。 但不是用JS。我究竟做错了什么?这是 JSFiddle 示例https://jsfiddle.net/umkrt5b1/ 代码如下:
<style>
#test {
transition: transform 1000ms linear;
background-color: green;
display: inline-block;
width: 50px;
height: 50px;
}
</style>
<div id="test"></div>
<script>
document.getElementById('test').style.transform = 'translateX(200px)';
</script>
【问题讨论】:
-
这有点依赖于浏览器,如果他们在执行该脚本之前进行了重新计算,例如当前的 FF 会,Chrome 不会。更好地保持安全,trigger it yourself. 我不认为规范要求他们这样做。
-
你为什么关闭这个问题?我看不出有什么关系。另外,如果我问一些问题,我想问的是编程模式中的纯问题,而不是“我有一个大型游戏项目,在其代码中使用了大量的 jquery。前段时间我把所有内容都剥离了”谁想阅读它?这是从我的代码中提取的纯问题。没有人对我的项目或想法感到好奇......
-
您是否阅读了那里的答案及其链接?您的 situation 与那个 exactly 相同:在您设置新的转换值之前,浏览器尚未执行重新计算 -> 它看不到任何要转换的内容来自。
-
可能是。但这很干净。为谷歌清洁 为人们清洁。我讨厌垃圾代码。
标签: javascript css-transitions translate