在网页中使用任意方法使光标悬停在元素上方时播放动画并且在播放到一半的时候停止光标离开时继续播放动画直到结束
可以使用CSS3动画和JavaScript控制光标的悬停事件来实现该功能。具体步骤如下:
- 使用CSS3动画定义元素的动画效果。例如:
@keyframes my-animation {
0% { transform: scale(1); }
50% { transform: scale(1.5); }
100% { transform: scale(1); }
}
.my-element {
animation: my-animation 2s infinite;
}
这段代码定义了一个名为“my-animation”的动画,包含了从原始大小到1.5倍大小再回到原始大小的变化,每次变化耗时2秒,并且无限循环播放。同时,将该动画应用到一个名为“my-element”的元素上。
- 使用JavaScript监听元素的鼠标事件。例如:
var myElement = document.querySelector('.my-element');
myElement.addEventListener('mouseover', function() {
myElement.style.animationPlayState = 'paused';
});
myElement.addEventListener('mouseout', function() {
myElement.style.animationPlayState = 'running';
});
这段代码获取了名为“my-element”的元素,并在其上监听了鼠标的“mouseover”和“mouseout”事件。当鼠标悬停在元素上方时,将该元素的动画播放状态设置为“paused”,即暂停播放。当鼠标离开元素时,将动画播放状态设置为“running”,即继续播放。
- 将CSS样式和JavaScript代码放入HTML文件中,即可实现该功能。
完整代码如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Animation on hover</title>
<style>
@keyframes my-animation {
0% { transform: scale(1); }
50% { transform: scale(1.5); }
100% { transform: scale(1); }
}
.my-element {
width: 100px;
height: 100px;
background-color: red;
animation: my-animation 2s infinite;
}
</style>
</head>
<body>
<div class="my-element"></div>
<script>
var myElement = document.querySelector('.my-element');
myElement.addEventListener('mouseover', function() {
myElement.style.animationPlayState = 'paused';
});
myElement.addEventListener('mouseout', function() {
myElement.style.animationPlayState = 'running';
});
</script>
</body>
</html>
原文地址: https://www.cveoy.top/t/topic/bFSu 著作权归作者所有。请勿转载和采集!