鼠标滚轮触发图片自动旋转动画且越转越快,其中图片旋转角度与滚轮无关
时间: 2023-08-10 13:03:09 浏览: 147
图片随鼠标滚轮的转动放缩
实现该功能可以使用以下步骤:
1. 在 HTML 中创建一个包含图片的容器元素,并设置其宽度和高度。
2. 在 CSS 中设置容器元素的 position 属性为 relative,图片的 position 属性为 absolute,并设置图片的初始位置和旋转角度。
3. 在 JavaScript 中监听鼠标滚轮事件,并根据滚轮滚动的方向来控制图片的旋转速度。
4. 在每次滚动事件发生时,使用 setInterval 函数和 CSS transform 属性来实现图片的旋转动画。
以下是示例代码:
HTML:
```
<div class="container">
<img src="image.jpg" alt="Image">
</div>
```
CSS:
```
.container {
width: 500px;
height: 500px;
position: relative;
}
img {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%) rotate(0deg);
}
```
JavaScript:
```
const container = document.querySelector('.container');
const img = container.querySelector('img');
let rotationAngle = 0;
let rotationSpeed = 0;
container.addEventListener('wheel', event => {
event.preventDefault();
rotationSpeed += event.deltaY / 1000;
});
setInterval(() => {
rotationAngle += rotationSpeed;
img.style.transform = `translate(-50%, -50%) rotate(${rotationAngle}deg)`;
}, 10);
```
在上面的示例中,我们使用了 setInterval 函数来每隔 10 毫秒更新一次图片的旋转角度,rotationAngle 是旋转角度的变量,rotationSpeed 是旋转速度的变量,根据滚轮事件的 deltaY 属性来调整 rotationSpeed 的值,使旋转速度越来越快。最后使用 CSS transform 属性来实现图片的旋转动画。
阅读全文