【HTML+CSS+JS】模仿QQ登录界面
创始人
2024-03-31 10:48:29

目录

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

前言

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

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

简介

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

布局思路

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

    
QQ
找回密码
注册账号

用QQ手机版扫描二维码安全登录

懒得弄了

相关代码

颜色渐变动画

思路是渐变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';})
})

总结

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

相关内容

热门资讯

埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
demo什么意思 demo版本... 618快到了,各位的小金库大概也在准备开闸放水了吧。没有小金库的,也该向老婆撒娇卖萌服个软了,一切只...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
demo什么意思 demo版本... 618快到了,各位的小金库大概也在准备开闸放水了吧。没有小金库的,也该向老婆撒娇卖萌服个软了,一切只...
埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...