JavaScript仿小米官网注册登录功能的实现

目录
  • 首先我们需要搭建好页面布局
  • JS功能1
  • JS功能2
  • JS功能3
  • JS功能4

效果图如下:

首先我们需要搭建好页面布局

html的代码如下:

​
<div class="contentrightbottom">
                <div class="contentrightbottombox">

                    <div class="crbottomlogin">
                        <div class="login"><a href="#" rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow" >登录</a></div>
                        <div class="regist"><a href="#" rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow" >注册</a></div>
                    </div>
                    <div class="loginregistbox">
                        <ul>
                            <li>
                                <div class="crbottomcontent">
                                    <input type="text" placeholder="邮箱/手机号码/小米ID" class="user">
                                    <br>
                                    <p class="pzh">请输入账号</p>
                                    <div class="pwdeyebox">
                                        <input type="password" placeholder="密码" class="pwd"><br>
                                        <img src="close.png" alt="" class="eye">
                                    </div>
                                    <p class="pmm">请输入密码</p>
                                    <input type="checkbox" class="checks">
                                    <span>已阅读并同意小米账号</span>
                                    <span>用户协议</span>
                                    <span>和</span>
                                    <span>隐私政策</span><br>
                                    <button>登录</button><br>
                                    <span class="forgetpwd"><a href="#" rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow" >忘记密码?</a></span>
                                    <span class=" phonelogin"><a href="#" rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow" >手机号登录</a></span>
                                    <p class="other">其他登录方式</p>
                                    <div class="crbottomcontentimg">
                                        <span><img src="share1.png" alt=""></span>
                                        <span><img src="share2.png" alt=""></span>
                                        <span><img src="share3.png" alt=""></span>
                                        <span><img src="share4.png" alt=""></span>
                                    </div>
                                </div>
                            </li>
                            <li>
                                <div class="crbottomcontentregist">
                                    <input type="text" placeholder="请输入注册账号" class="ruser">
                                    <p class="rpzh">请输入账号</p>
                                    <br>
                                    <input type="password" placeholder="请输入密码" class="rpwd">
                                    <p class="rpmm">请输入密码</p><br>
                                    <input type="number" class="rphone" placeholder="短信验证码">
                                    <p class="rpyzm">请输入验证码</p><br>
                                    <input type="checkbox" class="checks">
                                    <span>已阅读并同意小米账号</span>
                                    <span>用户协议</span>
                                    <span>和</span>
                                    <span>隐私政策</span><br>
                                    <button>登录</button><br>
                                    <span class="forgetpwd"><a href="#" rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow" >忘记密码?</a></span>
                                    <span class=" phonelogin"><a href="#" rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow" >手机号登录</a></span>
                                    <p class="other">其他登录方式</p>
                                    <div class="crbottomcontentimg">
                                        <span><img src="share1.png" alt=""></span>
                                        <span><img src="share2.png" alt=""></span>
                                        <span><img src="share3.png" alt=""></span>
                                        <span><img src="share4.png" alt=""></span>
                                    </div>
                                </div>
                            </li>
                        </ul>
                    </div>

                </div>
                <p class="conpany">小米公司版权所有-京ICP备10046444-京公网安备11010802020134号</p>
            </div>

​

整个登录注册分为上下两个盒子:

上面的盒子装登录和注册两个文字盒子,作为JS的点击滑动按钮

下面的盒子使用小li分别装登录和注册两个盒子,然后让小li浮动起来,让登录注册两个盒子浮动在一行,然后给contentrightbottombox这个大盒子添加overfl:hidden属性,超出的隐藏起来之后我们就可以写JS功能代码了

JS功能1

点击登录注册进行切换

在css里面我们通过小li的浮动将登录和注册的盒子浮动在一排

当我们点击注册按钮的时候只需要让包裹小li的ul移动到注册盒子上面即可

当我们点击登录按钮的时候也只需要让ul移动到登录的盒子上面

代码如下:

  var registbtn = document.querySelector('.regist');
    var loginbtn = document.querySelector('.login');
    var loginregistbox = document.querySelector('.loginregistbox');
    var boxul = loginregistbox.querySelector('ul');

    registbtn.addEventListener('click', function () {
        boxul.style.transition = 'all 0.3s';
        boxul.style.transform = 'translateX(-414px)';
        registbtn.style.borderBottom = '4px solid #FF6900';
        loginbtn.style.borderBottom = 'none';

    });
    loginbtn.addEventListener('click', function () {
        boxul.style.transition = 'all 0.3s';
        boxul.style.transform = 'translateX(0px)';
        loginbtn.style.borderBottom = '4px solid #FF6900';
        registbtn.style.borderBottom = 'none';

    });

JS功能2

点击input盒子里面的文字缩小并往上移动

在小米官网的登录里面,它是使用lable标签来实现,我是直接给input里面的placeholder添加样式来实现

修改placeholder的样式我们是通过伪类的方式实现,并且给它定位让它缩小后移动到要求的位置,并且加上了过渡,看起来好看一点点

代码如下:


    var user = document.querySelector('.user');
    var pwd = document.querySelector('.pwd');
    var pzh = document.querySelector('.pzh');
    var pmm = document.querySelector('.pmm');

    user.addEventListener('focus', function () {
        user.style.border = '1px solid red';
        user.style.boxShadow = '0 0 1px 2px #FFDECC';
        user.style.backgroundColor = '#FCF2F3';
        user.style.transition = 'all 0.3s';
        user.setAttribute('class', 'user change1');

    });
.change1::placeholder{
 position: absolute;
 top: 5px;
 left: 20px;
 font-size: 12px;
color: #C1C1C1;
transition: all .3s;

}
.change2::placeholder{
   font-size: 17px;
       color: red;
       transition: all .3s;
   }

JS功能3

跳出提示"请输入账号"

在html添加一个p标签(其他标签也可以),在css里面修改他的样式并给它display样式让他隐藏起来

在js里面 失去焦点的时候判断文本框里面是否有值,有值就让他隐藏,否则就显示

代码如下:

user.addEventListener('blur', function () {

        user.style.border = 'none';
        user.style.boxShadow = 'none';
        user.style.transition = 'all .3s';
        if (user.value == '') {
            pzh.style.display = 'block';
            user.style.backgroundColor = '#FCF2F3';
            user.setAttribute('class', 'user change2');
        } else {
            pzh.style.display = 'none';
            user.style.backgroundColor = '#F9F9F9';
            user.style.fontSize = '17px';

            user.setAttribute('class', 'user change1');
        }
    });
.rpzh,.rpmm,.rpyzm{
    display: none;
    color: red;
    font-size: 12px;
    margin-top: 10px;
    margin-left: 40px;
    margin-bottom: -30px;
}

JS功能4

显示密码和隐藏密码

定义一个flag变量来控制开关图片的切换和input中的type属性中的值

  var flag = 0;
    eyes.addEventListener('click', function () {
        if (flag == 0) {
            pwd.type = 'text';
            eyes.src = 'open.png';
            flag = 1;
        }
        else {
            pwd.type = 'password';
            eyes.src = 'close.png';
            flag = 0;
        }
    });

到此这篇关于JavaScript仿小米官网注册登录功能的实现的文章就介绍到这了,更多相关JavaScript 的内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • JavaScript仿小米商城官网完整页面实现流程

    目录 一.首页的制作 1.下载APP的制作 2.导航栏的制作 3.轮播图的制作 二.登录.注册页面的制作 1.盒子布局 2.复选框样式更改 三.页面跳转 不知不觉学习前端已经快4个月啦,之前没学JavaScript之前做的项目都只能看不能玩,小米官网这个页面算上写出的第一个相对完整一点的项目,虽然需要进步的地方还有很多,但是未来可期! 本篇博客主要是针对在书写这个项目时遇到的一些问题,找出对应的方法,记录一下自己在写这个项目时踩过的坑. 一.首页的制作 首页的主要效果有如下几个: 下载APP.购

  • js仿小米手机上下滑动效果

    本文实例为大家分享了js上下滑动效果的具体代码,供大家参考,具体内容如下 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <style> .box{ width: 512px; height: 400px; margin:100px auto; overflo

  • JavaScript仿小米轮播图效果

    本文是自己仿写的小米轮播图的写法,通过透明度改变进行轮播的,新手,写的可能不是很好,有啥不合理的情况,望提出,指正,全部的代码放最下面 有很多写法重复,有空的时候,我把重复的代码封装一下 关于透明度渐变的动画效果 比如 delayOpacity(OliArray[pre],0,-0.1); 就是将OliArray[pre]这个对象的透明度转换成0,速度为0.1 function delayOpacity(obj,target,speed){ clearInterval(timer); timer

  • JS实现小米轮播图

    原生JS仿小米轮播图(最新版易懂),供大家参考,具体内容如下 本次内容主要可实现的效果: 自动轮播 可点击上一张 下一张进行图片的切换 点击右下方小圆点进行图片切换 代码部分: H5: <div class="wrap"> <ul class="list"> <li class="item active"><img src="img/001.jpg" alt=""&

  • js仿小米官网图片轮播特效

    小米官网给我的感觉是大气.干净.很多特效的加入让人觉得耳目一新,big满满. 看到他们首页的轮播图实现挺有意思,于是自己模仿着写了一个. 大致的感觉出来了,贴个图先: 通过前端神器chrom的F12观察小米官网的html代码,不难看到他们使用5个div包裹图片并使用了定位通过z-index来控制div层级,通过控制每个div的opacity属性和display属性进行元素的显示.隐藏. 截图如下(红框内的opacity属性): 好的,实现的手段知道了,那么页面布局先搞出来. <!DOCTYPE

  • JavaScript仿小米官网注册登录功能的实现

    目录 首先我们需要搭建好页面布局 JS功能1 JS功能2 JS功能3 JS功能4 效果图如下: 首先我们需要搭建好页面布局 html的代码如下: ​ <div class="contentrightbottom"> <div class="contentrightbottombox"> <div class="crbottomlogin"> <div class="login">

  • Spring MVC+mybatis实现注册登录功能

    本文实例为大家分享了Spring MVC mybatis实现注册登录功能的具体代码,供大家参考,具体内容如下 前期准备: 如下图所示,准备好所需要的包 新建工程,导入所需要的包,在web.xml中配置好所需要的,如下 <?xml version="1.0" encoding="UTF-8"?> <web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee&q

  • 利用vue3+threejs仿iView官网大波浪特效实例

    目录 前言 一.效果图 二.代码 三.背景图片素材 总结 前言 Threejs可以理解为是一个web端三维引擎(渲染模型,数据可视化),如果有接触过UnralEngine 4(虚幻四)等游戏引擎的,应该很容易理解在一个三维场景必备的每一个部件(场景,渲染器,网格模型,材质,光源,色相机).好的,基础知识咱们先跳过,直接上实现的过程 一.效果图 先上最终效果图: 具体效果可参考iview官方界面iView - 一套高质量的UI组件库 大波浪效果,使用的是three.js的官方例子,需要先安装thr

  • JavaScript仿小米实现球体分解动画

    目录 演示 技术栈 源码 演示 用过小米手机的应该见过这个动画 它这个球体会随着垃圾的清理被例子画分解 随着这个思路我们给他改造一下实现这种效果 技术栈 首先我们使用了一些好用的js脚本来帮助我们做这件事情 EffectComposer和three来完成我们的渲染任务.在该对象上可以添加后期处理通道,使用它来渲染场景.应用通道和输出结果. 轨道控制器OrbitControls.js是一个相当神奇的控件,用它可以实现场景用鼠标交互,让场景动起来,控制场景的旋转.平移,缩放.等功能 stats大家应

  • express+vue+mongodb+session 实现注册登录功能

    主要实现如下功能: 1. 支持注册,登录功能,用户可以注册完成后,进行登录,登录完成后会进入到列表增删改查页面. 2. 支持session会话,也就是说设置了多长时间登录过期,如果用户没有登录,直接进查询列表页面,会重定向到登录页面去,如果用户登录了后,把浏览器关掉,直接输入列表查询页面,会直接进入列表页面的. 3. 列表数据加入了分页功能. 4. 对数据库中的请求加入了日志记录. 先看下效果: 1. 首先服务器重启后,在地址栏中输入 http://localhost:8081/ 后,会重定向到

  • 微信小程序实现注册登录功能(表单校验、错误提示)

    口说无凭,实现效果如下 前端 部分 注册功能 1.wxml文件 <view> <view class="frm"> <view class="ui-row ui-row-border-top ui-row-border-bottom" style="margin-bottom: 20px;height:40px;"> <view class="ui-col ui-col-border-right

  • IDEA实现 springmvc的简单注册登录功能的示例代码

    1.基本环境搭建 spring简介 SpringMVC框架是以请求为驱动,围绕Servlet设计,将请求发给控制器,然后通过模型对象,分派器来展示请求结果视图.其中核心类是DispatcherServlet,它是一个Servlet,顶层是实现的Servlet接口. project创建 在图中填上项目名称即可,其他直接next 如上图所示,创建两个包,并且指定包的类型,如下图,java包指定为Sources Root,resouces包指定为Resources root 整个目录结构: pom依赖

  • Python实现注册登录功能

    用Python写个注册登录功能,供大家参考,具体内容如下 本文是用Python写一个注册登录功能,难度不大,很适合练手主要就是用列表和字典,以及逻辑判断用到的第3方库模块是time模块,以及re(正则表达式)模块这里使用time模块就是为了通过sleep方法,让程序运行有进程感,不是一下子蹦出所有信息使用re模块就是用于判断密码的复杂性,我们注册软件系统判断我们的密码是否足够复杂就是通过正则表达式去判断的 首先第1步就是导入这2个模块,即 import time import re 之后需要1个

随机推荐