h5甩屏动画切换详细代码,教程
时间: 2023-12-19 19:14:00 浏览: 153
好的,以下是一个详细的H5甩屏动画切换的示例代码和教程。
HTML代码:
```html
<div class="screens">
<div class="screen active" style="background-color: red;">
<h1>屏幕1</h1>
<p>这是第1个屏幕的内容</p>
</div>
<div class="screen" style="background-color: green;">
<h1>屏幕2</h1>
<p>这是第2个屏幕的内容</p>
</div>
<div class="screen" style="background-color: blue;">
<h1>屏幕3</h1>
<p>这是第3个屏幕的内容</p>
</div>
</div>
```
CSS代码:
```css
.screens {
width: 100%;
height: 100%;
position: relative;
overflow: hidden;
}
.screen {
width: 100%;
height: 100%;
position: absolute;
left: 0;
top: 0;
transform: translateX(100%);
transition: transform 0.5s ease-in-out;
}
.screen.active {
transform: translateX(0);
}
.button {
position: fixed;
bottom: 20px;
left: 50%;
transform: translateX(-50%);
padding: 10px 20px;
background-color: #fff;
border: none;
border-radius: 20px;
box-shadow: 0 2px 6px rgba(0, 0, 0, 0.3);
font-size: 16px;
cursor: pointer;
}
```
JavaScript代码:
```javascript
var screens = document.querySelectorAll('.screen');
var activeIndex = 0;
var button = document.querySelector('.button');
// 点击按钮切换屏幕
button.addEventListener('click', function() {
// 隐藏当前屏幕
screens[activeIndex].classList.remove('active');
// 计算下一个屏幕的索引
activeIndex = (activeIndex + 1) % screens.length;
// 显示下一个屏幕
screens[activeIndex].classList.add('active');
});
```
在这个示例中,我们创建了一个包含三个屏幕的容器.screens,每个屏幕的内容不同,背景颜色也不同。我们设置了.screens的宽度和高度都为100%,并将其position设置为relative,以便让.screen元素的position:absolute相对于.screens定位。
然后我们给每个.screen元素设置了position:absolute,并通过transform: translateX(100%);将其移动到容器右侧。再给.screen元素设置了transition属性,设置了动画时间和动画效果。
接着我们在.active类中设置transform: translateX(0);,并将该类应用到初始需要显示的屏幕上,即第一个屏幕,以便在页面加载时显示第一个屏幕。
最后我们在JavaScript代码中,通过querySelectorAll方法获取所有.screen元素,并将其放在一个数组中。然后我们定义了一个activeIndex变量,用于存储当前显示屏幕的索引。我们再通过querySelector方法获取到按钮元素,并给其添加了一个点击事件,当按钮被点击时,我们先移除当前显示的屏幕的.active类,然后计算下一个要显示的屏幕的索引,最后给该屏幕添加.active类以显示它。
通过这个示例,我们可以看到如何使用CSS3的transform属性和transition属性实现H5甩屏动画,以及如何使用JavaScript来控制屏幕的切换。
阅读全文