使用JS、CSS、H5实现简单的登录弹窗,可保存用户信息

简介: 使用JS、CSS、H5实现简单的登录弹窗,可保存用户信息。

目录


一、效果展示


二、H5布局


三、css的布局


四、获取元素


六、设置登录弹窗出现与关闭


七、设置弹窗的移动


八、设置保存信息


九、源码评论区自取


一、效果展示


整体效果

微信图片_20220926225135.gif

二、H5布局


网页结构分为三大块,第一部分点击a标签会弹出登录框,第二部分是登录框用户填写表单,需要注意A标签中使用javascript:;


第三部分是设置突出背景。

<a href="javascript:;" id="loginA">注册/登录</a>//第一部分
  <div class="login">//第二部分
        <div class="title">
      用户登录 <a href="javascript:;" id="close">关闭</a>
     </div>
     <div class="content">
     <p> 用户名:<input type="text" value=""  class="username"/> </p>
     <p>  密码:<input type="password" value="" class="rusername"/> </p>
      <p> <input type="button" value="提交" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type="checkbox" id="iusername">是否记住账号密码</p>
     </div>
     </div>
  <div class="bg"></div>//第三部分


三、css的布局


需要注意登录弹窗和背景板的权重


 

*{
    padding: 0px;
    margin: 0px;
    }
    li{
    list-style: none;
    }
    a{
    text-decoration: none;
    }
            .title{
    height: 45px;
    line-height: 45px;
    text-align: center;
    border-bottom: 1px solid #DCDCDC;
    position: relative;
    cursor: move; 
    }
    .content p{
     text-align: center;
     line-height: 45px;
    }
    .title a{
     display: block;
     position: fixed;
    top:2px;
     right: 5px;
     z-index: 9999;
    }

   

 布局的时候就需要将,背景板和弹窗使用display: none;来实现消失的效果,在后续的步骤中来实现显现和消失的效果


 

.bg{
    width: 100%;
    height: 100%;
      position: fixed;
    top: 0px;
    left:0px;
     background: rgb(0,0,0,.4);
     z-index: 9998;
     display: none;
    }
    .login{
     width: 600px;
     height: 300px;
     position: fixed;
     top:50%;
    left:50%;
    transform: translate(-50%,-50%);
    z-index: 9999;
    background: #fff;
    display: none;
    }


四、获取元素


需要将所有元素获取,注意class和Id选择器的方式


 

var a = document.querySelector('#loginA');
            var div = document.querySelector('.title');
            var close = document.querySelector('#close');
            var bg = document.querySelector('.bg');
            var login = document.querySelector('.login');
            var username = document.querySelector('.username');
            var rusername = document.querySelector('.rusername');
            var iusername = document.querySelector('#iusername');

     

六、设置登录弹窗出现与关闭


设置点击事件,来实现显示和消失,要注意设置点击对象

a.onclick=function(){
                bg.style.display = 'block';
                login.style.display='block';
            }
            close.onclick=function(){
                bg.style.display = 'none';
                login.style.display='none';
            }

     

七、设置弹窗的移动


  先设置鼠标点下事件,需要获取鼠标在一定的范围内才能实现鼠标点下事件,接着设置鼠标移动事件,也要获取距离,最后在赋值给左边和右边的距离,最后设置鼠标抬起事件,来结束鼠标的移动事件。

div.addEventListener('mousedown',function(e){
                var x = e.pageX-login.offsetLeft;
                var y = e.pageY-login.offsetTop;
            document.addEventListener("mousemove",move)
            function move(e){
                var newx=e.pageX-x;
                var newy=e.pageY-y;
            login.style.left=newx+'px';
            login.style.top=newy+'px';
            }
            document.addEventListener('mouseup',function(e){
                document.removeEventListener("mousemove",move);
            })
            })

   

八、设置保存信息


    在表单中对‘iusername’设置点击事件,来判断改变的值,在function中需要用if来判是否选中,进行保存信息,为了实现保存后,页面可以显示用户信息,需要再次使用if来完成判断,在把所得到的值,给到到表单中的value。从而实现保存用户信息,在下一次打开后,依旧显示该用户的信息。


    在保存后,使用iusername.checked=true,再次打开,保存键会处于选中状态,想要取消保存,可以直接取消保存键的选中,关闭后内容就会被删除(此小节内容在开始的效果展示中没有显示,是因为是后期的优化,本人较懒没有去跟换视频)

iusername.addEventListener('change',function(){
                if(iusername.checked){
                    localStorage.setItem('username',username.value)
                    localStorage.setItem('rusername',rusername.value)
                }else{
                    localStorage.removeItem('username');
                    localStorage.removeItem('rusername');
                }
            })
         if(localStorage.getItem('username')){
            username.value=localStorage.getItem('username');
            iusername.checked=true;
         }
         if(localStorage.getItem('rusername')){
            rusername.value=localStorage.getItem('rusername');
           iusername.checked=true;
         }

     

九、源码评论区自取


相关文章
|
8月前
|
移动开发 前端开发 JavaScript
征信报告修改器,征信报告生成器,制作软件无痕修改软件【js+html+css】
本项目为信用评分模拟器教学工具,采用HTML5实现,仅供学习参考。核心功能通过JavaScript构建,包含虚拟数据生成、权重分配及信用因素分析(如还款记录、信用使用率等)。
|
8月前
|
前端开发 JavaScript
个人征信电子版无痕修改, 个人信用报告pdf修改,js+html+css即可实现【仅供学习用途】
本代码展示了一个信用知识学习系统的前端实现,包含评分计算、因素分析和建议生成功能。所有数据均为模拟生成
|
8月前
|
存储 前端开发 JavaScript
仿真银行app下载安装, 银行卡虚拟余额制作app,用html+css+js实现逼真娱乐工具
这是一个简单的银行账户模拟器项目,用于学习前端开发基础。用户可进行存款、取款操作,所有数据存储于浏览器内存中
|
8月前
|
前端开发
个人征信PDF无痕修改软件,个人征信模板可编辑,个人征信报告p图神器【js+html+css仅供学习用途】
这是一款信用知识学习系统,旨在帮助用户了解征信基本概念、信用评分计算原理及信用行为影响。系统通过模拟数据生成信用报告,涵盖还款记录
|
8月前
|
前端开发 JavaScript 容器
制作b超单生成器, 假怀孕b超单图片制作, p图医院证明【css+html+js装逼恶搞神器】
本资源提供一个适合用于熟人之间恶搞的工具,效果逼真,仅供学习参考与娱乐。包含前端技术学习要点:语义化布局、响应式设计、Flexbox、图片自适应
|
Web App开发 前端开发 JavaScript
|
8月前
|
存储 自然语言处理 前端开发
抖音快手小红书虚拟评论截图生成器,模拟对话制作工具,html+js+css
这是一款纯前端实现的多平台虚拟评论生成器,支持抖音、快手、小红书风格,适用于产品演示与UI设计。采用Vanilla JS与Flexbox布局,利用IndexedDB存储数据,CSS Variables切换主题。
|
8月前
|
存储 前端开发 安全
病历单生成器在线制作,病历单生成器app,HTML+CSS+JS恶搞工具
本项目为医疗病历模拟生成器,旨在为医学教学和软件开发测试提供数据支持,严格遵守《医疗机构病历管理规定》。
|
8月前
|
前端开发 容器
处方单图片生成器, 处方单在线制作免费,js+css+html恶搞神器
这是一个电子处方模拟生成系统,使用html2canvas库实现图片导出功能。系统生成的处方单包含多重防伪标识,并明确标注为模拟数据,仅供学习