html+css+js做一个登录注册页面,并保存注册者信息,求代码

时间: 2023-12-06 14:39:30 浏览: 65
以下是一个简单的 HTML、CSS 和 JavaScript 实现的登录注册页面,同时可以将注册信息保存在本地存储或者通过 Ajax 发送给后端服务器进行处理。 HTML 代码: ```html <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Login/Register</title> <link rel="stylesheet" href="style.css"> </head> <body> <div class="container"> <div class="form-container sign-up-container"> <form id="register-form"> <h1>Create Account</h1> <input type="text" placeholder="Name" name="name" required /> <input type="email" placeholder="Email" name="email" required /> <input type="password" placeholder="Password" name="password" required /> <button>Sign Up</button> </form> </div> <div class="form-container sign-in-container"> <form id="login-form"> <h1>Sign in</h1> <input type="email" placeholder="Email" name="email" required /> <input type="password" placeholder="Password" name="password" required /> <button>Sign In</button> </form> </div> <div class="overlay-container"> <div class="overlay"> <div class="overlay-panel overlay-left"> <h1>Welcome Back!</h1> <p>To keep connected with us please login with your personal info</p> <button class="ghost" id="signIn">Sign In</button> </div> <div class="overlay-panel overlay-right"> <h1>Hello, Friend!</h1> <p>Enter your personal details and start journey with us</p> <button class="ghost" id="signUp">Sign Up</button> </div> </div> </div> </div> <script src="script.js"></script> </body> </html> ``` CSS 代码: ```css * { box-sizing: border-box; } body { background-color: #f6f5f7; font-family: 'Open Sans', sans-serif; } .container { background-color: #fff; border-radius: 10px; box-shadow: 0 14px 28px rgba(0,0,0,0.25), 0 10px 10px rgba(0,0,0,0.22); position: relative; overflow: hidden; width: 768px; max-width: 100%; min-height: 480px; } .form-container { position: absolute; top: 0; height: 100%; transition: all 0.6s ease-in-out; } .sign-up-container { left: 0; width: 50%; z-index: 2; } .sign-in-container { left: 0; width: 50%; opacity: 0; z-index: 1; } .container.right-panel-active .sign-up-container { transform: translateX(100%); } .container.right-panel-active .sign-in-container { transform: translateX(100%); opacity: 1; z-index: 5; } .overlay-container { position: absolute; top: 0; left: 50%; width: 50%; height: 100%; overflow: hidden; transition: transform 0.6s ease-in-out; z-index: 100; } .container.right-panel-active .overlay-container{ transform: translateX(-100%); } .overlay { background: #ff416c; background: -webkit-linear-gradient(to right, #ff4b2b, #ff416c); background: linear-gradient(to right, #ff4b2b, #ff416c); background-repeat: no-repeat; background-size: cover; background-position: 0 0; color: #fff; position: relative; left: -100%; height: 100%; width: 200%; transform: translateX(0); transition: transform 0.6s ease-in-out; } .container.right-panel-active .overlay { transform: translateX(50%); } .overlay-panel { position: absolute; display: flex; align-items: center; justify-content: center; flex-direction: column; padding: 0 40px; text-align: center; top: 0; height: 100%; width: 50%; transform: translateX(0); transition: transform 0.6s ease-in-out; } .overlay-left { transform: translateX(-20%); } .container.right-panel-active .overlay-left { transform: translateX(0); } .overlay-right { right: 0; transform: translateX(0); } .container.right-panel-active .overlay-right { transform: translateX(20%); } .social-container { margin: 20px 0; } .social-container a { border: 1px solid #ddd; border-radius: 50%; display: inline-flex; justify-content: center; align-items: center; margin: 0 5px; height: 40px; width: 40px; } .form { background-color: #fff; display: flex; align-items: center; justify-content: center; flex-direction: column; padding: 0 50px; height: 100%; text-align: center; } .form h1 { font-weight: bold; margin: 0 0 20px; } .form input { background-color: #eee; border: none; padding: 12px 15px; margin: 8px 0; width: 100%; } .form button { background-color: #ff416c; color: #fff; border: none; border-radius: 20px; cursor: pointer; margin-top: 20px; padding: 12px 0; width: 50%; transition: all 0.5s ease-in-out; } .form button:hover { background-color: #ff4b2b; } .form button:focus { outline: none; } .hide { display: none; } ``` JavaScript 代码: ```javascript const signUpButton = document.getElementById('signUp'); const signInButton = document.getElementById('signIn'); const container = document.getElementById('container'); const registerForm = document.getElementById('register-form'); const loginForm = document.getElementById('login-form'); signUpButton.addEventListener('click', () => { container.classList.add('right-panel-active'); }); signInButton.addEventListener('click', () => { container.classList.remove('right-panel-active'); }); registerForm.addEventListener('submit', (event) => { event.preventDefault(); const formData = new FormData(registerForm); const userData = { name: formData.get('name'), email: formData.get('email'), password: formData.get('password') }; localStorage.setItem('user', JSON.stringify(userData)); alert('Registration successful!'); }); loginForm.addEventListener('submit', (event) => { event.preventDefault(); const formData = new FormData(loginForm); const email = formData.get('email'); const password = formData.get('password'); const userData = JSON.parse(localStorage.getItem('user')); if (userData && userData.email === email && userData.password === password) { alert('Login successful!'); } else { alert('Invalid email or password!'); } }); ``` 上述代码实现了一个简单的登录注册页面,其中包含两个表单,分别用于注册和登录。用户填写注册表单后,可以将注册信息保存在本地存储中;用户填写登录表单后,可以从本地存储中获取注册信息进行验证,如果验证成功则提示登录成功,否则提示无效的邮箱或密码。 请注意:本代码仅供学习和参考,不建议直接在生产环境中使用。在实际项目中,应该使用后端技术实现用户注册和登录功能,并采取适当的安全措施保护用户隐私。

相关推荐

最新推荐

recommend-type

JS+HTML5本地存储Localstorage实现注册登录及验证功能示例

主要介绍了JS+HTML5本地存储Localstorage实现注册登录及验证功能,结合实例形式分析了基于JS+HTML5本地存储Localstorage实现注册登录及验证相关操作技巧,需要的朋友可以参考下
recommend-type

小程序登录/注册页面设计的实现代码

主要介绍了小程序登录/注册页面设计的实现代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
recommend-type

单片机C语言Proteus仿真实例可演奏的电子琴

单片机C语言Proteus仿真实例可演奏的电子琴提取方式是百度网盘分享地址
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

实现实时数据湖架构:Kafka与Hive集成

![实现实时数据湖架构:Kafka与Hive集成](https://img-blog.csdnimg.cn/img_convert/10eb2e6972b3b6086286fc64c0b3ee41.jpeg) # 1. 实时数据湖架构概述** 实时数据湖是一种现代数据管理架构,它允许企业以低延迟的方式收集、存储和处理大量数据。与传统数据仓库不同,实时数据湖不依赖于预先定义的模式,而是采用灵活的架构,可以处理各种数据类型和格式。这种架构为企业提供了以下优势: - **实时洞察:**实时数据湖允许企业访问最新的数据,从而做出更明智的决策。 - **数据民主化:**实时数据湖使各种利益相关者都可
recommend-type

用matlab绘制高斯色噪声情况下的频率估计CRLB,其中w(n)是零均值高斯色噪声,w(n)=0.8*w(n-1)+e(n),e(n)服从零均值方差为se的高斯分布

以下是用matlab绘制高斯色噪声情况下频率估计CRLB的代码: ```matlab % 参数设置 N = 100; % 信号长度 se = 0.5; % 噪声方差 w = zeros(N,1); % 高斯色噪声 w(1) = randn(1)*sqrt(se); for n = 2:N w(n) = 0.8*w(n-1) + randn(1)*sqrt(se); end % 计算频率估计CRLB fs = 1; % 采样频率 df = 0.01; % 频率分辨率 f = 0:df:fs/2; % 频率范围 M = length(f); CRLB = zeros(M,1); for
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。
recommend-type

"互动学习:行动中的多样性与论文攻读经历"

多样性她- 事实上SCI NCES你的时间表ECOLEDO C Tora SC和NCESPOUR l’Ingén学习互动,互动学习以行动为中心的强化学习学会互动,互动学习,以行动为中心的强化学习计算机科学博士论文于2021年9月28日在Villeneuve d'Asq公开支持马修·瑟林评审团主席法布里斯·勒菲弗尔阿维尼翁大学教授论文指导奥利维尔·皮耶昆谷歌研究教授:智囊团论文联合主任菲利普·普雷教授,大学。里尔/CRISTAL/因里亚报告员奥利维耶·西格德索邦大学报告员卢多维奇·德诺耶教授,Facebook /索邦大学审查员越南圣迈IMT Atlantic高级讲师邀请弗洛里安·斯特鲁布博士,Deepmind对于那些及时看到自己错误的人...3谢谢你首先,我要感谢我的两位博士生导师Olivier和Philippe。奥利维尔,"站在巨人的肩膀上"这句话对你来说完全有意义了。从科学上讲,你知道在这篇论文的(许多)错误中,你是我可以依
recommend-type

实现实时监控告警系统:Kafka与Grafana整合

![实现实时监控告警系统:Kafka与Grafana整合](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X2pwZy9BVldpY3ladXVDbEZpY1pLWmw2bUVaWXFUcEdLT1VDdkxRSmQxZXB5R1lxaWNlUjA2c0hFek5Qc3FyRktudFF1VDMxQVl3QTRXV2lhSWFRMEFRc0I1cW1ZOGcvNjQw?x-oss-process=image/format,png) # 1.1 Kafka集群架构 Kafka集群由多个称为代理的服务器组成,这