【发布时间】:2022-02-08 16:24:13
【问题描述】:
我的转换属性有问题。即,它仅在第一次之后才起作用。第一次没有过渡效果。
JS代码:
document.addEventListener("DOMContentLoaded", function() {
var second = document.querySelector('.square');
if(second) {
second.addEventListener("mouseenter", function() {
var maxX = Math.floor(Math.random() * (window.innerWidth - 200));
var maxY = Math.floor(Math.random() * (window.innerHeight - 200));
this.style.left = maxX + 'px';
this.style.top = maxY + 'px';
this.style.transition = 'left 2s, top 2s';
});
}
});
CSS 代码:
* {
margin: 0;
padding: 0;
}
main {
height: 100vh;
display: flex;
justify-content: center;
align-items: center;
position: relative;
}
.second {
height: 200px;
width: 200px;
position: absolute;
display: flex;
justify-content: center;
align-items: center;
}
编辑:
更新:
将过渡移动到 CSS 不会改变任何东西。 Square必须居中,不能离开窗口。
【问题讨论】:
-
你能提供一个jsfiddle吗?这样就很容易弄明白了
-
我猜是因为你是用 JS 添加过渡,把它移到 CSS
-
我添加了 jsfiddle。我把它移到 CSS 上,效果是一样的。
标签: javascript css css-transitions