js图片卷帘门特效源码
“图片卷帘门”效果通常指当用户触发某个操作(如点击、悬停)时,一组图片像卷帘门一样上下滑动或左右展开,呈现出动画效果。这种效果常用于展示产品、相册、新闻等内容。
<div class="image-container">
<img src="image1.jpg" alt="Image 1">
<img src="image2.jpg" alt="Image 2">
<img src="image3.jpg" alt="Image 3">
</div>
代码段
.image-container {
overflow: hidden;
height: 200px;
}
.image-container img {
width: 100%;
transition: transform 0.5s ease-in-out;
}
.slide-up .image-container img:nth-child(1) {
transform: translateY(-100%);
}
.slide-up .image-container img:nth-child(2) {
transform: translateY(0);
}
.slide-up .image-container img:nth-child(3) {
transform: translateY(100%);
}
JavaScript
// 获取容器元素
const imageContainer = document.querySelector('.image-container');
// 触发动画的函数
function slideUp() {
imageContainer.classList.add('slide-up');
}
// 添加事件监听器(例如点击按钮触发)
const button = document.querySelector('button');
button.addEventListener('click', slideUp);
overflow: hidden
隐藏超出容器的部分。transition
属性设置过渡动画。slide-up
类用于控制图片的初始位置,实现动画效果。slideUp
,添加 slide-up
类到容器上,触发动画。transform: translateY()
改为 transform: translateX()
,实现左右滑动效果。animation
属性创建更复杂的动画效果。
<template>
<div class="image-container">
<img v-for="image in images" :src="image" :key="image" :style="{ transform: `translateY(${index * 100}%)` }" />
</div>
</template>
<script>
export default {
data() {
return {
images: ['image1.jpg', 'image2.jpg', 'image3.jpg'],
};
},
};
</script>
注意:
想了解更多,你可以尝试以下:
transition
、animation
、transform
等属性的更多用法。如果你有更多的问题,欢迎随时提出!
你可以提出以下问题:
我将竭诚为你解答!
关键词: JS图片卷帘门, CSS3动画, JavaScript, Vue.js, 响应式设计, 性能优化