web全栈开发之网站开发二(弹出式登录注册框前端实现-类腾讯)
这次给大家分享的是目前很多网站中流行的弹出式登录框,如下面的腾讯网登录界面,采用弹出式登录的好处是大大提升了网站的用户体验和交互性,用户不用重新跳转到指定的页面就能登录,非常方便
先来个演示地址

要实现这个功能的大致思路是:
1.首先要在页面上设置一个登录按钮,可以是<button><a><img>都行,我们点击这个元素的时候会弹出登录框

2.其次在页面合适位置制作两个<div>,一个登录功能的div,另一个注册功能的div,注意位置的设置,当网站首次加载进入的时候登录框不可见,那就要把样式设置为display:"none"
3.当用户点击登录按钮的时候,通过JS设置登录div的display="",如何用户点击了登录界面上的注册按钮时,通过jQuery切换div透明和大小就可以完美实现登录注册的切换

4.关闭登录框的话也是同样的道理,把两个div的display设置为none就行
上代码:
sign.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>sign</title>
<style>
body {
text-align: center;
background-color: burlywood;
}
.signform {
font-family: 微软雅黑;
position: fixed;
background-color: white;
top: 20%;
left: 30%;
width: 500px;
height: 400px;
border-radius: 1em;
text-align: center;
z-index: 999;
}
#registerform {
height: 450px;
}
.signclose {
cursor: pointer;
float: right;
overflow: hidden;
text-align: center;
position: relative;
height: 35px;
width: 35px;
margin-top: 10px;
margin-right: 10px;
}
#registerloading{
position: absolute;
width: 25px;
height: 25px;
left: 410px;
top: 90px;
}
.signinput {
text-align: center;
border-radius: 0.2em;
width: 280px;
height: 45px;
border: none;
background-color:#f2f2f2;
font-size: 28px;
}
.signinput::-webkit-input-placeholder {
font-size: 26px;
}
.userdiv {
position: relative;
margin-top: 80px;
}
.pwddiv {
position: relative;
margin-top: 20px;
}
.postdiv {
position: relative;
margin-top: 20px;
}
.postdiv button {
cursor: pointer;
color: white;
font-size: 26px;
border: none;
border-radius: 0.4em;
width: 280px;
height: 45px;
background-color:#4CAF50;
}
</style>
<link rel="stylesheet" href="css/sign.css">
</head>
<body>
<div>
<button id="displaysign" onclick="start()">点击登录</button>
</div>
<div class="signform" id="signform" style="display: none">
<div class="signclose">
<img src="data:image/signclose.ico" width="35px" height="35px" onclick="signclose()">
</div>
<div class="userdiv">
<input id="user" class="signinput" type="text" placeholder="用户名" name="user" >
</div>
<div class="pwddiv">
<input id="pwd" class="signinput" type="password" placeholder="密码" name="pwd">
</div>
<div class="postdiv">
<button>登录</button>
</div>
<br>
<div class="change" style="color: #4d4d4d">
<p>还没有账号?赶快<a href="#" style="text-decoration: none;color: #43A047">注册</a>一个吧</p>
</div>
</div>
<div class="signform" id="registerform" style="display: none">
<div class="signclose">
<img src="data:image/signclose.ico" width="35px" height="35px" onclick="signclose()">
</div>
<div class="userdiv">
<input id="registeruser" class="signinput" onblur="loading()" type="text" placeholder="用户名" name="user">
</div>
<img src="data:image/signloading.gif" style="display: none" id="registerloading">
<div class="pwddiv">
<input id="registerpwd" class="signinput" type="password" placeholder="密码" name="pwd">
</div>
<div class="pwddiv">
<input id="registerrepwd" class="signinput" type="password" placeholder="再次输入密码" name="pwd">
</div>
<div class="postdiv">
<button>注册</button>
</div>
<br>
<div class="change" style="color: #4d4d4d">
<p>已有账号?立刻去<a href="#" style="text-decoration: none;color: #43A047">登录</a>吧</p>
</div>
</div>
</body>
<script src="js/jquery-3.1.1.min.js"></script>
<script src="js/signformchange.js"></script>
</html>
sign.css
body {
text-align: center;
background-color: burlywood;
}
#displaysign{
position: relative;
top: 80px;
width: 70px;
height: 40px;
}
.signform {
font-family: 微软雅黑;
position: fixed;
background-color: white;
top: 20%;
left: 30%;
width: 500px;
height: 400px;
border-radius: 1em;
text-align: center;
z-index:;
}
#registerform {
height: 450px;
}
.signclose {
cursor: pointer;
float: right;
overflow: hidden;
text-align: center;
position: relative;
height: 35px;
width: 35px;
margin-top: 10px;
margin-right: 10px;
}
#registerloading{
position: absolute;
width: 25px;
height: 25px;
left: 410px;
top: 90px;
}
.signinput {
text-align: center;
border-radius: 0.2em;
width: 280px;
height: 45px;
border: none;
background-color:#f2f2f2;
font-size: 28px;
}
.signinput::-webkit-input-placeholder {
font-size: 26px;
}
.userdiv {
position: relative;
margin-top: 80px;
}
.pwddiv {
position: relative;
margin-top: 20px;
}
.postdiv {
position: relative;
margin-top: 20px;
}
.postdiv button {
cursor: pointer;
color: white;
font-size: 26px;
border: none;
border-radius: 0.4em;
width: 280px;
height: 45px;
background-color:#4CAF50;
}
signformchange.js
$(function ()
{
$('.change a').click(function ()
{
$('.signform').animate({height: 'toggle', opacity: 'toggle'}, 'slow');
});
}) function start() {
document.getElementById('signform').style.display=""
} function signclose() {
document.getElementById('signform').style.display="none"
document.getElementById('registerform').style.display="none"
}
function loading() {
document.getElementById('registerloading').style.display=""
}
web全栈开发之网站开发二(弹出式登录注册框前端实现-类腾讯)的更多相关文章
- web全栈后台权限管理系统(VUE+ElementUi+nodeJs+koa2)
web全栈后台权限管理系统(VUE+ElementUi+nodeJs+koa2) 主要技术 前端 vue 全家桶 ElementUI 后端 Node.js Koa2 Mongoess 数据库 mong ...
- 处女作《Web全栈开发进阶之路》出版了!
书中源码下载地址:https://github.com/qinggee/WebAdvanced 01. 当初决定写博客的原因非常的纯洁:只要每个月写上 4 篇以上博客,月底的绩效奖金就多 500 块. ...
- Web 全栈开发 MySQL 面试题
Web 全栈开发 MySQL 面试题 MySQL MySQL 读写分离 读写分离原理 MySQL的主从复制和MySQL的读写分离两者有着紧密联系,首先部署主从复制,只有主从复制完了,才能在此基础上进行 ...
- Web 全栈开发 Redis 面试题
Web 全栈开发 Redis 面试题 Redis 大 key 问题 https://www.cnblogs.com/xgqfrms/p/13601959.html Redis 数据结构 Redis 初 ...
- 从 rails 窥探 web 全栈开发(零)
从 rails 窥探 web 全栈开发(零) 本文将讲述在学习之前几个必须要知道的概念,这些词汇在 rails 中都会出现. 本文前置条件:安装好 Ruby. 从 rails 窥探 web 全栈开发( ...
- 使用IntelliJ IDEA开发SpringMVC网站(二)框架配置
原文:使用IntelliJ IDEA开发SpringMVC网站(二)框架配置 摘要 讲解如何配置SpringMVC框架xml,以及如何在Tomcat中运行 目录[-] 文章已针对IDEA 15做了一定 ...
- Web 全栈大会:万维网之父的数据主权革命
大家好,今天我和大家分享一下由万维网之父发起的一场数据主权革命.什么叫数据主权?很容易理解,现在我们的数据是把持在巨头手里的,你的微信通讯录和聊天记录都无法导出,不管是从人权角度还是从法理角度,这些数 ...
- 基于LeanCloud云引擎的Web全栈方案
LeanEngine-Full-Stack The FULL STACK DEVELOPER 复杂的项目, 协作分工, 自动化流程,代码组织结构,框架选择,国际化方案等 Generator 或者See ...
- 《web全栈工程师的自我修养》阅读笔记
在买之前以为这本书是教你怎么去做一个web全栈工程师,以及介绍需要掌握的哪些技术的书,然而看的过程中才发现,是一本方法论的书.读起来的感觉有点像红衣教主的<我的互联网方法论>,以一些自己的 ...
随机推荐
- android自定义控件一站式入门
自定义控件 Android系统提供了一系列UI相关的类来帮助我们构造app的界面,以及完成交互的处理. 一般的,所有可以在窗口中被展示的UI对象类型,最终都是继承自View的类,这包括展示最终内容的非 ...
- .NET Core全新路线图
.NET Core / ASP.NET Core 1 RTM发布两周后,社区也很积极,收到了非常多的反馈,上周五微软的scott Hunter 在dotnet团队官方博客上发布了.NET Core全新 ...
- MySQL 系列(一) 生产标准线上环境安装配置案例及棘手问题解决
一.简介 MySQL是最流行的开放源码SQL数据库管理系统,它是由MySQL AB公司开发.发布并支持的.有以下特点: MySQL是一种数据库管理系统. MySQL是一种关联数据库管理系统. MySQ ...
- Android中Fragment与Activity之间的交互(两种实现方式)
(未给Fragment的布局设置BackGound) 之前关于Android中Fragment的概念以及创建方式,我专门写了一篇博文<Android中Fragment的两种创建方式>,就如 ...
- android计算每个目录剩余空间丶总空间以及SD卡剩余空间
ublic class MemorySpaceCheck { /** * 计算剩余空间 * @param path * @return */ public static String getAvail ...
- 初识git版本控制系统
当下git分布式版本控制系统越来越火,掌握git也是必须的一个技能.因此,对git做了如下学习. Git初级指南 1. 先安装git.(ps:在select cmponents处要勾选Git Bash ...
- Spark的StandAlone模式原理和安装、Spark-on-YARN的理解
Spark是一个内存迭代式运算框架,通过RDD来描述数据从哪里来,数据用那个算子计算,计算完的数据保存到哪里,RDD之间的依赖关系.他只是一个运算框架,和storm一样只做运算,不做存储. Spark ...
- Express 教程 01 - 入门教程之经典的Hello World
目录: 前言 一.Express?纳尼?! 二.开始前的准备工作 三.测试安装之经典的Hello World 四.使用express(1)来生成一个应用程序 五.说明 前言: 本篇文章是建立在Node ...
- 喜马拉雅音频下载器 V1.2 支持专辑批量下载 喜马拉雅mp3下载导出 喜马拉雅下载器
出差一个星期回来看邮箱,发现好多网友评论说网站又更新了,老程序不能用了,有热心网友放出修改版的,我就不重复造车了..大家可以去这里下载 http://blog.csdn.net/suqingheang ...
- 将css和js缓存到localStorage缓存,提高网页响应速度
适用于小站点,这很极致,很快速~~ /** * Created by SevenNight on 2016/9/21 0021. * 插件功能:使用localStorage缓存js和css文件,减少h ...