【HTML+CSS+JS】模仿QQ登录界面

article/2025/9/17 1:39:05

目录

    • 前言
    • 简介
    • 布局思路
    • 相关代码
      • 颜色渐变动画
      • 头像
      • 表单区域
      • JS相关
    • 总结

前言

学了HTML、CSS和JS有了一个月了,JS还未学完,偷懒写一个小项目,用了一个下午,顺便巩固一下所学知识。(内容比较简陋,适合新手)

源代码:https://github.com/yeziyuhai/QQ-login-interface

简介

左边是我的,右边是官方的。没有设计稿和素材,只能自己找,所以是无法做到一模一样的,不够这样子也差不多了。
在这里插入图片描述

布局思路

很明显,简陋的做法是上下两个盒子,中间头像可以定位上面的父级也可以定位下面的父级,这里我选择的是上面,中间内容用一个表单包裹。注册账号和二维码使用定位,父级是大盒子。
.html

    <!-- 登录界面 --><div><div class="login"><!-- 顶部 --><div class="top"><div class="left"><span class="iconfont icon-QQ"></span>QQ</div><div class="right"><span class="iconfont icon-shezhi"></span><span class="iconfont icon-jianhao"></span><span class="iconfont icon-chenghao"></span></div><div class="head"><div class="green"></div></div></div><!-- 底部 --><div class="bottom"><!-- 表单 --><form action="javascript:;"><div class="input"><div class="text"><label for=""><span class="iconfont icon-QQ"></span></label><label for=""><span class="iconfont icon-xiala"></span></label><input type="text" placeholder="QQ号码/手机/邮箱" name="uname"></div><div class="password"><label for=""><span class="iconfont icon-suoding_huaban"></span></label><label for=""><span class="iconfont icon-jianpan_o"></span></label><input type="password" placeholder="密码">                               </div></div><div class="check"><!-- 点击文字也可以选中 --><label><input type="checkbox" >自动登录</label> <label><input type="checkbox">记住密码</label> <a href="https://accounts.qq.com/find?aquin" target="_blank">找回密码</a></div><input type="submit" value="登录" class="loginBtn"></form><!-- 其他 --><a href="https://ssl.zc.qq.com/v3/index-chs.html?from=client&regkey=1720F6EE975B2AFF081EC88BCAE91F145C04012178E039924F1CC17DB69AC184&ADUIN=0&ADSESSION=0&ADTAG=CLIENT.QQ.5929_NewAccount_Btn.0&ADPUBNO=27255" class="signup" target="_blank">注册账号</a><span class="iconfont icon-ico"></span><!-- 手机登录二维码 --></div><div class="mobile"><img src="./images/erweima.png" alt=""><p>用QQ手机版扫描二维码安全登录</p> <button class="back">返回</button></div><!-- 设置 --><div class="setup"><p>懒得弄了</p> <button class="back">返回</button></div></div></div>

相关代码

颜色渐变动画

思路是渐变45度角倾斜,之后动画改变定位,当然和官方的不一样,做出差不多效果就行。
.css

.login .top {position: relative;width: 100%;height: 40%;background: linear-gradient(-45deg, #23A6D5, rgba(106, 103, 255), rgba(158, 81, 255), #23A6D5, #23D5AB);background-size: 400% 400%;animation: bg 4s infinite linear forwards;color: #fff;
}@keyframes bg {0% {background-position: 0 50%;}50% {background-position: 100% 50%;}100% {background-position: 0 50%;}
}

头像

头像绝对定位,顶部相对定位,小绿点绝对定位。

.login .top .head {position: absolute;left: 50%;top: 100%;width: 50px;height: 50px;border-radius: 50%;border: 2px solid #fff;transform: translate(-50%, -50%);box-shadow: 0px 5px 10px 0px rgba(118, 118, 118, 0.4);background-image: url(/images/head.png);background-size: contain;background-repeat: no-repeat;background-color: rgba(234, 28, 39);
}
.login .top .head .green {position: absolute;right: -10px;bottom: -8px;width: 14px;height: 14px;border-radius: 50%;border: 2px solid #fff;transform: translate(-50%, -50%);box-shadow: 0px 5px 10px 0px rgba(118, 118, 118, 0.4);background-color: rgba(9, 241, 117);
}

表单区域

直接搬.less过来,清除一些。这里面挺多细节的,先说好字体大小浏览器最小只能是12px,除非你把自己浏览器最小字号调到10px,视觉上好看一些,不然下面复选框的字会换行。

添加了textChange类,因为需要点击输入框之后样式的改变。

这里耗费我比较多的时间,挺多细节,毕竟我这个人追求完美。
.less

form {position: absolute;left: 50%;top: 50%;transform: translate(-50%, -50%);text-align: center;margin-top: 8px;.input {.text {position: relative;width: 100%;border-bottom: 1px solid #ccc;margin-bottom: 5px;.icon-QQ {position: absolute;left: 0;top: 0;color: rgba(184, 186, 188);}.icon-xiala {position: absolute;right: 0;top: 0;}}.password {position: relative;width: 100%;border-bottom: 1px solid #ccc;.icon-suoding_huaban {position: absolute;left: 2px;top: 4px;font-size: 12px;color: rgba(184, 186, 188);}.icon-jianpan_o {position: absolute;right: 0;top: 0;}}// 要放在后面,不然层叠.textChange {border-bottom: 1px solid rgba(28, 196, 252);.icon-QQ {color: rgba(28, 196, 252);}}.passWordChange {border-bottom: 1px solid rgba(28, 196, 252);.icon-suoding_huaban {color: rgba(28, 196, 252);}}input {width: 80%;height: 20px;/* 去掉默认边框样式 */border: 0;outline: none; }}.check {display: flex;justify-content: space-between;width: 100%;margin: 5px 0;font-size: 10px;color: rgba(166, 166, 166);// 多选框大小input {// ohhhhhhhhhhhfloat: left;transform: scale(.8);}label {position: relative;margin-right: 12px;}a {color: rgba(166, 166, 166);}a:hover {color: rgba(166, 190, 177);}}// 点击登录.loginBtn {width: 100%;height: 28px;border-radius: 3px;background-color: rgba(28, 196, 252);color: #fff;font-size: 12px;}.loginBtn:active {background-color: rgba(34, 174, 250);}}.signup {position: absolute;left: 0;bottom: 0;margin: 5px;font-size: 10px;color: rgba(166, 166, 166);}.signup:hover {color: rgba(166, 190, 177)}

JS相关

拖拽界面、界面关闭、输入框显示、点击二维码使用手机登录
在这里插入图片描述

在这里插入图片描述
.js

// window.onload是窗口(页面)加载事件,当文档内容完全加载完成会触发该事件(包括图像,脚本文件,CSS文件等),就调用的处理函数。
window.addEventListener('load', function() {// 1.登录界面// 关闭var jianhao = this.document.querySelector('.icon-jianhao');var chenghao = this.document.querySelector('.icon-chenghao');var login = this.document.querySelector('.login');jianhao.addEventListener('click', function() {login.style.display = 'none';})chenghao.addEventListener('click', function() {login.style.display = 'none';})// 输入框var text = this.document.querySelector('.text');var password = this.document.querySelector('.password');var textInput = text.querySelector('input');var passwordInput = password.querySelector('input');textInput.addEventListener('focus', function() {this.placeholder = '';text.className = 'text textChange';})textInput.addEventListener('blur', function() {this.placeholder = 'QQ号码/手机/邮箱';text.className = 'text';}) passwordInput.addEventListener('focus', function() {this.placeholder = '';password.className = 'password passWordChange';})passwordInput.addEventListener('blur', function() {this.placeholder = '密码';password.className = 'password';}) // 拖拽界面// 新的坐标 = 鼠标离盒子内距离 - 鼠标距离在网页距离var top = this.document.querySelector('.top');top.addEventListener('mousedown', function(e) {var x = e.pageX - login.offsetLeft;var y = e.pageY - login.offsetTop;document.addEventListener('mousemove', move);function move(e) {login.style.left = e.pageX - x + 'px';login.style.top = e.pageY - y + 'px';}document.addEventListener('mouseup', function() {document.removeEventListener('mousemove', move);})})// 手机登录var ico = this.document.querySelector('.icon-ico');var mobile = this.document.querySelector('.mobile');var bottom = this.document.querySelector('.bottom');var head = this.document.querySelector('.head');var back = this.document.querySelector('.back');ico.addEventListener('click', function() {mobile.style.display = 'block';bottom.style.display = 'none';head.style.display = 'none';})back.addEventListener('click', function() {bottom.style.display = 'block';head.style.display = 'block';mobile.style.display = 'none';})
})

总结

多动手技术才会提升,写代码才会熟练,之后也会更新这一系列文章。


http://chatgpt.dhexx.cn/article/a3kxEAFE.shtml

相关文章

QQ登录界面(Java)

hi~好久不见吖&#xff0c;我又回来啦&#xff0c;dengdengdeng&#xff08;他来了&#xff0c;他来了&#xff0c;他带着他新学的知识来啦&#xff09; 咳咳&#xff0c;只是一个简单的界面&#xff0c;啥也不能干 这段时间我学习了窗体的创建&#xff0c;听老师讲了一会怎么…

Android 高仿QQ 登陆界面

先上图&#xff1a; 下面是布局&#xff1a; <RelativeLayout xmlns:android"http://schemas.android.com/apk/res/android"android:layout_width"match_parent"android:layout_height"match_parent"android:background"drawable/login_…

java实现qq页面登陆界面

先看效果 1.建立包com.QQUI0819 2.在包下建立类 LoginAction package com.QQUI0819;import javax.swing.*; import java.awt.event.*; //首先&#xff0c;编写按钮癿监听器实现类 public class LoginAction implementsActionListener {private int count0;//当前为null,创建后…

QQ登录界面制作

实现简单的QQ登录操作&#xff08;阶段一&#xff09; 学习了java连接数据库后&#xff0c;便想简单的实现一下QQ登录的操作&#xff0c;但是也想拥有一个好看的界面&#xff0c;于是便打算进行界面设计&#xff08;个人喜好不同&#xff0c;不喜勿喷&#xff09;。 因为看起来…

qq 登陆界面怎么测试

主要考察&#xff1a; 测试者是否熟悉各种测试方法&#xff0c;是否有丰富的 App/Web 测试经验&#xff0c;以及相关开发经验&#xff0c;以及 设计 Test case 的能力。 功能测试 (Function test) 1&#xff09;输入正确的用户名和密码&#xff0c;点击提交按钮&#xff0c;验…

QQ用户登陆界面

import java.awt.*; import javax.swing.*;public class Test extends JFrame{//把需要的组件全部在这里定义JLabel bq1;//北部JButton an1,an2,an3; JPanel mb1;//南部JTabbedPane xxk;//中部 选项卡JPanel mb2,mb3,mb4;JLabel bq2,bq3,bq4,bq5;JTextField wbk;JPasswordFie…

qq登陆界面

以下是效果截图&#xff1a; 素材&#xff1a; 以下是源代码&#xff1a; import java.awt.*; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import javax.swing.*; public class QqClientLogin2 extends JFrameimplements MouseListener{ //北…

制作QQ登录界面

制作QQ登录界面 实验名称实验步骤1.程序大致理解2.代码实现 总结 实验名称 QQ登录界面 实验步骤 1.程序大致理解 在构建UI界面时不要着急动手&#xff0c;首先要考虑准备哪些素材&#xff08;如&#xff1a;图片资源&#xff09;&#xff0c;会用到哪些控件&#xff0c;把步…

qq登录界面

弄了弄qt&#xff0c;就知道为什么产品和程序员关系不好了。。 仿qq做的&#xff0c;感觉和qq差局还是很大&#xff0c;上图*.* 首先肯定是要把图片分成几部分&#xff0c;我分了4个框来处理这些&#xff08;顺便吐槽一下Linux的画图软件&#xff0c;太难收了&#xff09; 下一…

html-QQ登陆界面

初学30节课html的入门课程&#xff0c;花了几个小时模仿了一个qq的登陆界面。 效果图如下&#xff1a; 代码如下&#xff1a; <!DOCTYPE html> <html><head><meta charset"utf-8" /><meta name"viewport" content"width…

【AndroidStudio】手机QQ登录界面2022版

Android的界面布局建议用xml编写&#xff0c;可有效与java代码隔开&#xff0c;这里采用相对布局RelativeLaout实现QQ登录界面布局 2022版手机QQ登录界面 1.为实现QQ企鹅图标效果&#xff0c;在左侧项目目录下打开app/src/main/res/&#xff0c;将自己准备的qq图案复制后paste(…

css3实现qq制作QQ登陆界面

1.代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>QQlogin</title><style type"text/css">#myImg01 {margin-top: 20px;width: 100px;height: 100px;float: left;backgro…

Swing学习----------QQ登录界面制作(二)

素材获取可关注微信公众号&#xff1a;开源IT&#xff0c;后台回复 "素材" 免费获取。 上次把QQ界面的主题框架实现了&#xff0c;但是还没有完成最小化&#xff0c;关闭按钮等的功能&#xff0c;这次重新完善了QQ登录界面的功能&#xff0c;本次更新主要有以下几个…

蠕虫病毒与一般计算机病毒的区别,蠕虫和病毒的区别是什么啊!

jhello05-26 08:07 等级 3楼 顶 ls 感染Nimda蠕虫病毒 cxhioulover05-26 09:54 等级 4楼 蠕虫,也是病毒的一种吧,大家习惯性的把具有破坏性的程序统称为病毒,就干脆这样叫了。蠕虫

“机器狗”作者藐视法律公开出售病毒

近日,“机器狗”病毒新变种频出,互联网面临一场“狂犬病”考验。最新版本的机器狗病毒入侵成功后,会自动下载大量木马、病毒、恶意软件、插件等,几乎所有安全软件均不能正常使用,大量用户也因此而不得不选择重装系统。” 最近机器狗闹得很猛,中毒后的电脑会下载更多木马,…

彻底清除狗太阳的3721病毒完全手册!

原文地址为&#xff1a; 彻底清除狗太阳的3721病毒完全手册! 我们对Google的爱说不清楚为什么&#xff0c;就是那么执著。我们对3721的憎恨似乎也说不清楚为什么&#xff0c;看起来更执著。Google往我们口袋里塞钱了吗&#xff1f;当然没有。3721抢我们钱包里的钱了吗&#xf…

机器狗新病毒分析

机器狗新病毒分析 我这里有二个样本’ dd.exe dod.exe 通过McAfee的日志我们可以看到 2008-1-2411:56:09 已由访问保护规则禁止 SMILE\Administrator C:\Documents and Settings\Administrator\ 桌面\dod.exe C:\Documents and Settings\Administrator\Local Settings\Te…

变种机器狗木马病毒防范

近期变种机器狗木马病毒猖獗&#xff0c;此病毒采用hook系统的磁盘设备栈来达到穿透目的的&#xff0c;危害极大&#xff0c;可穿透目前技术条件下的任何软件硬件还原&#xff01;基本无法*还原抵挡。目前已知的所有还原产品&#xff0c;都无法防止这种病毒的穿透感染和传播。 …

机器狗病毒专杀软件

机器狗病毒 name"google_ads_frame" marginwidth"0" marginheight"0" src"http://pagead2.googlesyndication.com/pagead/ads?clientca-pub-5572165936844014&dt1196162201046&lmt1195819918&format336x280_as&outputhtml…

机器狗病毒的工作原理和判断

http://article.pchome.net/content-581031.html 机器狗病毒名字由来和工作原理 机器狗病毒名字的由来 2008年春节前后,一个长相若电子宠物狗的程序潜入互联网闯荡江湖。 这个东东可不是什么桌面电子宠物,有人发现了这个宠物,并运行了它。不久,更多的“机器狗”入侵了网民…