
全篇使用HTML、CSS、JavaScript,建议有过基础的进行阅读。

- html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
- <title>蜘蛛侠登录界面title>
- <link rel="stylesheet" href="styles.css">
- head>
- <body>
- <div class="center-container">
- <div class="login-container">
- <div class="spiderman-logo">
- <img src="logo.png" alt="Spider-Man Logo">
- div>
- <h2>欢迎回家h2>
- <form class="login-form">
- <div class="input-group">
- <label for="username">用户名label>
- <input type="text" id="username" placeholder="输入你的用户名">
- div>
- <div class="input-group">
- <label for="password">密码label>
- <input type="password" id="password" placeholder="输入你的密码">
- div>
- <button type="submit">登录button>
- form>
- div>
- div>
-
- <canvas id="spider-web">canvas>
-
- <script src="script.js">script>
- body>
- html>
- * {
- margin: 0;
- padding: 0;
- box-sizing: border-box;
- }
-
- body {
- font-family: Arial, sans-serif;
- background-color: #0A0A2A;
- display: flex;
- justify-content: center;
- align-items: center;
- height: 100vh;
- overflow: hidden;
- position: relative;
- color: white;
- }
-
- .center-container {
- display: flex;
- justify-content: center;
- align-items: center;
- z-index: 2;
- position: relative;
- }
-
- .login-container {
- background: linear-gradient(145deg, #c8102e, #0a0a2a);
- padding: 40px;
- border-radius: 15px;
- box-shadow: 0 8px 30px rgba(0, 0, 0, 0.5);
- text-align: center;
- width: 300px;
- z-index: 2;
- }
-
- .spiderman-logo img {
- width: 50px;
- height: 60px;
- margin-bottom: 5px;
- }
-
- /* Form styles */
- .login-form {
- display: flex;
- flex-direction: column;
- }
-
- .input-group {
- margin-bottom: 20px;
- }
-
- .input-group label {
- margin-bottom: 8px;
- font-size: 14px;
- float: left;
- }
-
- .input-group input {
- width: 100%;
- padding: 10px;
- border: none;
- border-radius: 5px;
- background-color: #ffffff;
- color: black;
- font-size: 16px;
- }
-
- button {
- padding: 10px 20px;
- border: none;
- background-color: #ff4c4c;
- color: white;
- font-size: 18px;
- border-radius: 5px;
- cursor: pointer;
- transition: background-color 0.3s ease;
- }
-
- button:hover {
- background-color: #ff1c1c;
- }
-
- #spider-web {
- position: absolute;
- top: 50%;
- left: 50%;
- transform: translate(-50%, -50%);
- z-index: 1;
- width: 100vw;
- height: 100vh;
- }
- const canvas = document.getElementById('spider-web');
- const ctx = canvas.getContext('2d');
-
- canvas.width = window.innerWidth;
- canvas.height = window.innerHeight;
-
- function drawWeb() {
- const centerX = canvas.width / 2;
- const centerY = canvas.height / 2;
- const radiusStep = 30;
- const radialStep = 10;
- const rings = 10;
- const lines = 12;
-
- for (let i = 1; i <= rings; i++) {
- ctx.beginPath();
- ctx.arc(centerX, centerY, radiusStep * i, 0, Math.PI * 2);
- ctx.strokeStyle = 'white';
- ctx.lineWidth = 1;
- ctx.stroke();
- }
-
- for (let i = 0; i < lines; i++) {
- const angle = (i / lines) * Math.PI * 2;
- const x = centerX + Math.cos(angle) * radiusStep * rings;
- const y = centerY + Math.sin(angle) * radiusStep * rings;
- ctx.beginPath();
- ctx.moveTo(centerX, centerY);
- ctx.lineTo(x, y);
- ctx.strokeStyle = 'white';
- ctx.lineWidth = 1;
- ctx.stroke();
- }
-
- for (let i = 1; i < rings; i++) {
- for (let j = 0; j < lines; j++) {
- const angle1 = (j / lines) * Math.PI * 2;
- const angle2 = ((j + 1) / lines) * Math.PI * 2;
- const x1 = centerX + Math.cos(angle1) * radiusStep * i;
- const y1 = centerY + Math.sin(angle1) * radiusStep * i;
- const x2 = centerX + Math.cos(angle2) * radiusStep * i;
- const y2 = centerY + Math.sin(angle2) * radiusStep * i;
-
- ctx.beginPath();
- ctx.moveTo(x1, y1);
- ctx.lineTo(x2, y2);
- ctx.strokeStyle = 'white';
- ctx.lineWidth = 1;
- ctx.stroke();
- }
- }
- }
-
- drawWeb();