场景:一张图在网页中间,用户往下滑的时候图片会随着滑动而放大至屏幕外部,往上滑动的时候会缩小回至中间,这个动画效果具体该怎么实现,具体代码
时间: 2024-03-02 18:49:12 浏览: 113
以下是一个使用CSS3和JavaScript实现图片放大缩小动画效果的代码示例:
HTML代码:
```
<div class="image-container">
<img src="your-image.jpg" alt="Your Image">
</div>
```
CSS代码:
```
.image-container {
position: fixed;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
transition: all 0.5s ease-in-out;
}
.image-container.active {
transform: translate(-50%, -50%) scale(1.5);
}
```
JavaScript代码:
```
// 获取图片容器和图片元素
var imageContainer = document.querySelector('.image-container');
var image = imageContainer.querySelector('img');
// 监听窗口滚动事件
window.addEventListener('scroll', function() {
// 获取图片容器的中心点
var containerTop = imageContainer.getBoundingClientRect().top + imageContainer.offsetHeight / 2;
// 根据窗口滚动方向和距离计算图片缩放比例
var scale = window.scrollY > containerTop ? 1.5 : 1;
// 如果图片缩放比例发生变化,则添加或移除.active类来触发动画效果
if (imageContainer.classList.contains('active') && scale === 1) {
imageContainer.classList.remove('active');
} else if (!imageContainer.classList.contains('active') && scale === 1.5) {
imageContainer.classList.add('active');
}
// 设置图片的缩放比例
image.style.transform = 'scale(' + scale + ')';
});
```
在上面的代码中,我们使用了CSS3中的transform属性来实现图片的位移和缩放,使用了transition属性来设置动画效果,使用了JavaScript来监听窗口滚动事件并根据滚动方向和距离计算出图片的缩放比例。最后,我们根据图片缩放比例的变化来添加或移除.active类来触发动画效果。
阅读全文