停止当前正在运行的动画并在悬停时更改样式可以通过以下步骤实现:
@keyframes
规则定义动画,并将其应用于需要动画效果的元素。例如,可以创建一个名为myAnimation
的动画:@keyframes myAnimation {
0% { opacity: 0; }
100% { opacity: 1; }
}
.element {
animation: myAnimation 2s infinite;
}
querySelector
或其他选择器方法选择要停止动画的元素,并使用style.animationPlayState
属性将动画状态设置为paused
以停止动画:const element = document.querySelector('.element');
element.style.animationPlayState = 'paused';
addEventListener
方法为元素添加mouseover
和mouseout
事件监听器,以在悬停时更改样式。在事件处理程序中,可以使用style
属性修改元素的样式:element.addEventListener('mouseover', function() {
this.style.backgroundColor = 'red';
});
element.addEventListener('mouseout', function() {
this.style.backgroundColor = 'blue';
});
完整的代码示例:
<!DOCTYPE html>
<html>
<head>
<style>
@keyframes myAnimation {
0% { opacity: 0; }
100% { opacity: 1; }
}
.element {
animation: myAnimation 2s infinite;
width: 100px;
height: 100px;
background-color: yellow;
}
</style>
</head>
<body>
<div class="element"></div>
<script>
const element = document.querySelector('.element');
element.style.animationPlayState = 'paused';
element.addEventListener('mouseover', function() {
this.style.backgroundColor = 'red';
});
element.addEventListener('mouseout', function() {
this.style.backgroundColor = 'blue';
});
</script>
</body>
</html>
在上述示例中,当鼠标悬停在元素上时,背景颜色将更改为红色,当鼠标移出元素时,背景颜色将更改为蓝色。动画将停止播放,因为我们将其动画状态设置为paused
。
领取专属 10元无门槛券
手把手带您无忧上云