前端登录后台页面实现
下面是一个使用HTML5、JS和CSS实现的前端登录页面,按照要求将文件分开存放。
文件结构
project/
├── index.html # HTML文件
├── css/
│ └── style.css # CSS样式文件
└── js/
└── script.js # JavaScript文件
1. HTML文件 (index.html)
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>后台管理系统 - 登录</title>
<link rel="stylesheet" href="css/style.css">
</head>
<body>
<div class="login-container">
<div class="login-header">
<h1>后台管理系统</h1>
</div>
<form id="loginForm" class="login-form">
<div class="form-group">
<label for="username">用户名</label>
<input type="text" id="username" name="username" required placeholder="请输入用户名">
</div>
<div class="form-group">
<label for="password">密码</label>
<input type="password" id="password" name="password" required placeholder="请输入密码">
</div>
<div class="form-actions">
<button type="submit" class="login-btn">登录</button>
</div>
<div id="error-message" class="error-message"></div>
</form>
</div>
<script src="js/script.js"></script>
</body>
</html>
2. CSS文件 (css/style.css)
* {
margin: 0;
padding: 0;
box-sizing: border-box;
font-family: 'Arial', sans-serif;
}
body {
background-color: #f5f5f5;
display: flex;
justify-content: center;
align-items: center;
height: 100vh;
background-image: linear-gradient(120deg, #a1c4fd 0%, #c2e9fb 100%);
}
.login-container {
background-color: white;
border-radius: 8px;
box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
width: 400px;
padding: 40px;
animation: fadeIn 0.5s ease-in-out;
}
.login-header {
text-align: center;
margin-bottom: 30px;
}
.login-header h1 {
color: #333;
font-size: 24px;
font-weight: 600;
}
.login-form .form-group {
margin-bottom: 20px;
}
.login-form label {
display: block;
margin-bottom: 8px;
color: #555;
font-size: 14px;
font-weight: 500;
}
.login-form input {
width: 100%;
padding: 12px 15px;
border: 1px solid #ddd;
border-radius: 4px;
font-size: 14px;
transition: border-color 0.3s;
}
.login-form input:focus {
border-color: #4a90e2;
outline: none;
box-shadow: 0 0 0 2px rgba(74, 144, 226, 0.2);
}
.login-btn {
width: 100%;
padding: 12px;
background-color: #4a90e2;
color: white;
border: none;
border-radius: 4px;
font-size: 16px;
font-weight: 500;
cursor: pointer;
transition: background-color 0.3s;
}
.login-btn:hover {
background-color: #3a7bc8;
}
.error-message {
color: #e74c3c;
font-size: 14px;
margin-top: 15px;
text-align: center;
min-height: 20px;
}
@keyframes fadeIn {
from {
opacity: 0;
transform: translateY(-20px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
3. JavaScript文件 (js/script.js)
document.addEventListener('DOMContentLoaded', function() {
const loginForm = document.getElementById('loginForm');
const errorMessage = document.getElementById('error-message');
loginForm.addEventListener('submit', function(e) {
e.preventDefault();
// 获取表单数据
const username = document.getElementById('username').value.trim();
const password = document.getElementById('password').value.trim();
// 简单验证
if (!username || !password) {
showError('请输入用户名和密码');
return;
}
// 模拟登录请求
simulateLogin(username, password);
});
function simulateLogin(username, password) {
// 显示加载状态
const loginBtn = document.querySelector('.login-btn');
loginBtn.textContent = '登录中...';
loginBtn.disabled = true;
// 模拟API请求延迟
setTimeout(() => {
// 这里应该是实际的API调用
// 示例中使用硬编码的验证
if (username === 'admin' && password === '123456') {
// 登录成功
loginSuccess();
} else {
// 登录失败
showError('用户名或密码错误');
loginBtn.textContent = '登录';
loginBtn.disabled = false;
}
}, 1000);
}
function loginSuccess() {
errorMessage.textContent = '';
errorMessage.style.color = '#2ecc71';
errorMessage.textContent = '登录成功! 正在跳转...';
// 模拟跳转到后台页面
setTimeout(() => {
// 实际项目中这里应该是跳转到后台首页
alert('登录成功,将跳转到后台页面');
// window.location.href = 'dashboard.html';
}, 1500);
}
function showError(message) {
errorMessage.textContent = message;
errorMessage.style.color = '#e74c3c';
}
});
功能说明
-
HTML部分:
- 创建了一个简洁的登录表单,包含用户名和密码输入框
- 引入了外部的CSS和JS文件
-
CSS部分:
- 设计了现代化的登录界面
- 包含动画效果和响应式设计
- 使用了渐变色背景和卡片式布局
-
JavaScript部分:
- 实现了表单提交验证
- 模拟了登录API请求
- 处理了成功和失败的登录场景
- 提供了用户反馈(错误消息)
扩展建议
- 在实际项目中,你需要将模拟登录替换为真实的API调用
- 可以添加"记住我"功能
- 可以增加密码显示/隐藏切换按钮
- 可以添加表单输入的进一步验证
- 可以考虑添加第三方登录方式(如Google、微信等)
这个实现遵循了现代前端开发的最佳实践,将结构(HTML)、表现(CSS)和行为(JavaScript)完全分离。 更多代币系列文章详情:baijiahao.baidu.com/s?id=183050…