【发布时间】:2019-12-28 16:05:36
【问题描述】:
我有一个 CSS 元素/球,我在点击时移动到新坐标。
这可行,但是我正在应用的转换似乎没有生效。
球会跳到新位置。我希望它慢慢动画/过渡/移动到新坐标。
我做错了什么?
.ball {
width: 30px;
height: 30px;
border-radius: 50%;
background-color: #FF5722;
position: absolute;
// d.style.transition = "all 1s ease-in";
transition: all 3s ease-in-out;
// -webkit-transition: all 1s ease-in-out;
// -moz-transition: all 1s ease-in-out;
// -o-transition: all 1s ease-in-out;
// -ms-transition: all 1s ease-in-out;
}
handleClick = (e) => {
console.log('ball clicked');
var d = document.getElementById('ball');
console.log('d', d);
d.style.x = 12 + "px";
d.style.top = 341 + "px";
d.style.transition = "all 1s ease-in";
}
谢谢
【问题讨论】:
-
在改变属性之前,过渡应该存在于元素上......这意味着在处理程序中的这段代码甚至运行之前
-
@JaromandaX - 我确实将它添加到 css 类中,但这也不起作用..
-
如果过渡是最后添加的,那么是的,它会跳转,因为其他值已经更改。通常虽然过渡被添加到 css 类中,所以它一直存在。
-
getElementById('ball').... 样式表中需要#ball而不是.ball -
顺便说一下,像你一样将转换从样式表中的 3 秒更改为 1 秒内联,转换可能需要 3 秒而不是 1 秒
标签: javascript css animation transition