HTML5 -webkit-transition如果我在Chrome上使用javascript设置其他内容之前设置正确,
HTML5 -webkit-transition doesn't work if I set it right before setting something else using javascript on chrome
我仍然是HTML5的新手,但我遇到了一个非常奇怪的行为。(在铬中)
以下代码适用于 chrome:
<!DOCTYPE html>
<html>
<head>
<title>Webkit-transition test</title>
<script language="javascript" >
function addSpan()
{
document.getElementById("someDiv").innerHTML = "<span id='"t47'" >A new span!</span>";
document.getElementById("t47").className += "letter";
}
function moveIt()
{
document.getElementById("t47").style["MozTransform"] = "translate(10px,40px)";
document.getElementById("t47").style["WebkitTransform"] = "translate(10px,40px)";
}
</script>
<style>
.letter{
-webkit-transition: all 1s ease-in-out;
-moz-transition: all 1s ease-in-out;
display: inline-block;
color: red;
}
</style>
</head>
<body>
<div id="someDiv"></div>
<span class="letter" id="aaa">This is an old span</span>
<button onclick='addSpan()'>Add Span</button>
<button onclick='moveIt()'>Move it!</button>
</body>
</html>
但是,如果我移动该行:
document.getElementById("t47").className += "letter";
到moveIt函数的开头,跨度只是跳跃而不过渡
javascript部分是这样的:
<script language="javascript" >
function addSpan()
{
document.getElementById("someDiv").innerHTML = "<span id='"t47'" >A new span!</span>";
}
function moveIt()
{
document.getElementById("t47").className += "letter";
document.getElementById("t47").style["MozTransform"] = "translate(10px,40px)";
document.getElementById("t47").style["WebkitTransform"] = "translate(10px,40px)";
}
</script>
那么这里有什么区别呢?不过,这两种情况在火狐上效果很好。我还没有尝试过IE。
我很感激我能得到的任何帮助!
来自 CSS Transitions 规范:
。在进行可能转换的更改后,在短时间内更改任何转换属性可能会导致行为因实现而异,因为在某些实现中可能认为更改是同时进行的,而在其他实现中则不是。
在您的替代版本中,您可以更改className
并更新transform
,而不允许浏览器计算更改对className
的后果。(这通常在将控制权返回到事件循环时发生。因此,浏览器可能仍在从 transition
属性的旧值(默认值 all 0s ease 0s
)运行。如果发生这种情况,则属性更改将立即发生,没有动画,因为延迟和持续时间0s
。
相关文章:
- 对象获胜'如果qml中的其他地方定义了数字动画属性,则t设置动画
- 无法在其他调用上设置jQuery对话框选项
- 如何使用CSS设置所选选项的样式,而不设置所有其他选项的样式
- 为数组元素的属性赋值将设置所有其他类似元素的属性
- 设置操作系统特定的键绑定 - Mac 上的 cmd 并在其他所有内容上按 Ctrl
- 如何停止一个函数并将其他函数设置为在 html5 的 javascript 中加载时运行
- 在页面加载时创建/设置活动的默认链接,但在单击其他链接时删除活动链接
- 这个关键字位于$.ajax()中,用于调用其他函数来设置url
- 根据其他属性返回的值设置属性
- 如何设置观察程序将文件复制到同一文件夹中的其他文件
- Angular Highcharts ng如何将其他数据系列设置为工具提示
- jQuery平滑滚动到相同页面和其他页面上的ID:如何设置偏移量
- 将列表项设置为负顶部的动画会使其他列表项下降
- 如何在jquery中使用其他下拉菜单来设置下拉菜单的文本和值
- 根据其他输入设置最大值
- 在环铆钉 js 中设置其他属性
- HTML5 -webkit-transition如果我在Chrome上使用javascript设置其他内容之前设置正确,
- 设置其他输入字段值的Sql查询结果(动态输入字段)
- 在“角度”中,在所选选项上设置其他选项的默认值
- 在Object Literal表示法中设置其他属性时如何获取属性