【发布时间】:2016-10-06 22:10:39
【问题描述】:
我想创建一个平滑移动块的函数。我更喜欢为此使用 CSS 选项“transition-duration”,但它似乎不适用于该职位。我检查了,它确实适用于背景颜色...
CSS 文件
#cart {
position: relative;
transition-duration: 0.5s;
background-color: green;
}
JS 文件
function start() {
document.getElementById("cart").innerHTML = "test2";
document.getElementById("cart").style.left = "100";
document.getElementById("cart").style.background = "gray";
}
所以背景颜色确实会在 2 秒内改变,而不是立即改变,而位置只是在你使用该功能的瞬间改变。有没有办法在 JS 中为 style.left 使用“过渡持续时间”?还是我必须使用其他东西才能使 div 平滑移动?
答案:
解决方案是,要让 transition-duration 做任何事情,它必须事先声明。这意味着因为我没有在非动画状态下指定位置,所以运动会立即完成。另一个解决方案是使用transition: left 0.5s,因为这不需要任何 CSS 样式。
【问题讨论】:
-
尝试最初在 CSS 中声明 left。 (背景颜色已声明并且似乎有效)
-
另外,如果块是固定宽度,请查看此小提琴中的示例 #3(使用 calc)jsfiddle.net/Hastig/j2an4sgx
标签: javascript html css