使用html编写一个登录页面,使用Tab栏实现“账号登录”和“二维码登录”这两种方式的切换,并通过transition组件结合animate.css实现切换时的动画效果。
时间: 2023-12-26 10:03:36 浏览: 135
好的,以下是一个简单的示例代码,希望能帮到您:
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>登录页面</title>
<link rel="stylesheet" href="https://cdn.bootcdn.net/ajax/libs/animate.css/4.1.1/animate.min.css">
<style>
.container {
margin: 50px auto;
width: 400px;
height: 300px;
background-color: #f2f2f2;
border-radius: 10px;
box-shadow: 0 0 10px rgba(0,0,0,0.2);
overflow: hidden;
position: relative;
}
.tab-bar {
display: flex;
justify-content: space-around;
align-items: center;
height: 50px;
background-color: #fff;
position: absolute;
top: 0;
left: 0;
right: 0;
z-index: 1;
}
.tab-bar button {
padding: 10px 20px;
border: none;
outline: none;
background-color: transparent;
color: #666;
font-size: 16px;
cursor: pointer;
transition: color .3s ease-in-out;
}
.tab-bar button.active {
color: #333;
font-weight: bold;
border-bottom: 3px solid #333;
}
.tab-content {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
height: calc(100% - 50px);
position: absolute;
top: 50px;
left: 0;
right: 0;
bottom: 0;
transition: transform .3s ease-in-out;
}
.tab-content.login {
transform: translateX(0);
}
.tab-content.qrcode {
transform: translateX(-100%);
}
</style>
</head>
<body>
<div class="container">
<div class="tab-bar">
<button class="active" data-target="login">账号登录</button>
<button data-target="qrcode">二维码登录</button>
</div>
<div class="tab-content login">
<form action="">
<input type="text" name="username" placeholder="请输入用户名"><br>
<input type="password" name="password" placeholder="请输入密码"><br>
<button type="submit">登录</button>
</form>
</div>
<div class="tab-content qrcode">
<img src="qrcode.png" alt="二维码"><br>
<p>扫码登录</p>
</div>
</div>
<script>
const tabBtns = document.querySelectorAll('.tab-bar button');
const tabContents = document.querySelectorAll('.tab-content');
tabBtns.forEach(btn => {
btn.addEventListener('click', () => {
const target = btn.dataset.target;
if (!btn.classList.contains('active')) {
tabBtns.forEach(btn => btn.classList.remove('active'));
btn.classList.add('active');
tabContents.forEach(content => {
if (content.classList.contains(target)) {
content.classList.add('animate__animated', 'animate__fadeInLeft');
content.classList.remove('animate__animated', 'animate__fadeOutRight');
} else {
content.classList.add('animate__animated', 'animate__fadeOutRight');
content.classList.remove('animate__animated', 'animate__fadeInLeft');
}
});
}
});
});
</script>
</body>
</html>
```
在这个示例代码中,我们使用了HTML和CSS来构建一个登录页面,并使用了两个Tab栏按钮来切换“账号登录”和“二维码登录”这两种方式。
在CSS中,我们使用了`position: absolute`和`transform`属性来实现Tab栏和Tab内容的位置和切换效果。同时,我们还使用了Animate.css动画库和`transition`属性来实现Tab内容切换时的动画效果。
在JavaScript中,我们使用了`querySelectorAll`方法来获取所有Tab按钮和Tab内容,并使用了`addEventListener`方法来为每个Tab按钮添加了一个`click`事件监听器。在事件监听器中,我们通过遍历所有Tab内容来判断当前点击的Tab按钮对应的Tab内容,并通过添加和删除CSS类名来实现Tab内容的切换和动画效果。
希望这个示例代码能够帮助您完成您的登录页面!
阅读全文