js制作带有遮罩弹出层实现登录注册表单特效代码分享

下面将详细讲解实现“JS制作带有遮罩弹出层实现登录注册表单特效”的完整攻略。

1.制作遮罩弹出层

要实现带有遮罩弹出层的效果,首先需要制作一个遮罩层和一个弹出层。

遮罩层

遮罩层是为了使背景页面不可操作以及页面内容有一定的透明度,使用 position: fixed 定位方式,铺满整个页面,且设置 z-index 层级高于其他层级。

遮罩层代码如下:

.overlay {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.4);
  z-index: 9999;
}

弹出层

弹出层可以用来显示用户的登录或注册表单。使用 position: fixed 定位方式,可以在遮罩层中心位置放置一个盒子,盒子内填充登录或注册表单等内容,并使用 z-index 层级高于遮罩层以及其他内容,从而展现出弹出层的效果。

弹出层代码如下:

.popup {
  display: none;
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 400px;
  height: 300px;
  background-color: #fff;
  border: 1px solid #eee;
  box-shadow: 0 0 10px 5px rgba(0, 0, 0, 0.3);
  z-index: 10000;
}

2.实现JavaScript弹出效果

当用户点击登录按钮时,需要让“遮罩层”和“弹出层”显示出来,当用户点击背景区域或关闭按钮时,则“遮罩层”和“弹出层”需要消失。

报错事件的处理需要使用JavaScript实现。具体方法是使用addEventListener 添加鼠标点击事件和关闭按钮点击事件,同时使用 classList 方法切换“遮罩层”和“弹出层”的 display 属性,从而实现弹出层效果。

示例代码如下:

// 获取登录按钮
let loginBtn = document.querySelector('#loginBtn');
// 获取关闭按钮
let closeBtn = document.querySelector('#closeBtn');
// 获取遮罩层
let overlay = document.querySelector('.overlay');
// 获取弹出层
let popup = document.querySelector('.popup');

// 监听登录按钮的点击事件
loginBtn.addEventListener('click', function () {
  // 打开遮罩层和弹出层
  overlay.classList.add('active');
  popup.classList.add('active');
});

// 监听关闭按钮的点击事件
closeBtn.addEventListener('click', function () {
  // 关闭遮罩层和弹出层
  overlay.classList.remove('active');
  popup.classList.remove('active');
});

// 监听遮罩层的点击事件
overlay.addEventListener('click', function () {
  // 关闭遮罩层和弹出层
  overlay.classList.remove('active');
  popup.classList.remove('active');
});

3.示例说明

示例1:实现一个登录表单的弹出层

HTML代码:

<button id="loginBtn">登录</button>
<div class="overlay"></div>
<div class="popup">
  <h2>登录</h2>
  <form>
    <label for="username">用户名:</label>
    <input type="text" id="username" name="username">
    <br>
    <label for="password">密码:</label>
    <input type="password" id="password" name="password">
    <br>
    <button type="submit">提交</button>
  </form>
  <button id="closeBtn">关闭</button>
</div>

CSS代码:

.overlay {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.4);
  z-index: 9999;
}

.popup {
  display: none;
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 400px;
  height: 300px;
  background-color: #fff;
  border: 1px solid #eee;
  box-shadow: 0 0 10px 5px rgba(0, 0, 0, 0.3);
  z-index: 10000;
}

JavaScript代码:

// 获取登录按钮
let loginBtn = document.querySelector('#loginBtn');
// 获取关闭按钮
let closeBtn = document.querySelector('#closeBtn');
// 获取遮罩层
let overlay = document.querySelector('.overlay');
// 获取弹出层
let popup = document.querySelector('.popup');

// 监听登录按钮的点击事件
loginBtn.addEventListener('click', function () {
  // 打开遮罩层和弹出层
  overlay.classList.add('active');
  popup.classList.add('active');
});

// 监听关闭按钮的点击事件
closeBtn.addEventListener('click', function () {
  // 关闭遮罩层和弹出层
  overlay.classList.remove('active');
  popup.classList.remove('active');
});

// 监听遮罩层的点击事件
overlay.addEventListener('click', function () {
  // 关闭遮罩层和弹出层
  overlay.classList.remove('active');
  popup.classList.remove('active');
});

示例2:实现一个注册表单的弹出层

HTML代码:

<button id="registerBtn">注册</button>
<div class="overlay"></div>
<div class="popup">
  <h2>注册</h2>
  <form>
    <label for="username">用户名:</label>
    <input type="text" id="username" name="username">
    <br>
    <label for="password">密码:</label>
    <input type="password" id="password" name="password">
    <br>
    <label for="email">电子邮箱:</label>
    <input type="email" id="email" name="email">
    <br>
    <button type="submit">提交</button>
  </form>
  <button id="closeBtn">关闭</button>
</div>

CSS代码:

.overlay {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.4);
  z-index: 9999;
}

.popup {
  display: none;
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 400px;
  height: 400px;
  background-color: #fff;
  border: 1px solid #eee;
  box-shadow: 0 0 10px 5px rgba(0, 0, 0, 0.3);
  z-index: 10000;
}

JavaScript代码:

// 获取注册按钮
let registerBtn = document.querySelector('#registerBtn');
// 获取关闭按钮
let closeBtn = document.querySelector('#closeBtn');
// 获取遮罩层
let overlay = document.querySelector('.overlay');
// 获取弹出层
let popup = document.querySelector('.popup');

// 监听注册按钮的点击事件
registerBtn.addEventListener('click', function () {
  // 打开遮罩层和弹出层
  overlay.classList.add('active');
  popup.classList.add('active');
});

// 监听关闭按钮的点击事件
closeBtn.addEventListener('click', function () {
  // 关闭遮罩层和弹出层
  overlay.classList.remove('active');
  popup.classList.remove('active');
});

// 监听遮罩层的点击事件
overlay.addEventListener('click', function () {
  // 关闭遮罩层和弹出层
  overlay.classList.remove('active');
  popup.classList.remove('active');
});

以上是“JS制作带有遮罩弹出层实现登录注册表单特效”的完整攻略。通过以上攻略,我们可以轻易地制作出类似弹出层的效果,从而提高网站的用户体验。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:js制作带有遮罩弹出层实现登录注册表单特效代码分享 - Python技术站

(0)
上一篇 2023年6月10日
下一篇 2023年6月10日

相关文章

  • 让你5分钟掌握9个JavaScript小技巧

    下面我就来详细讲解“让你5分钟掌握9个JavaScript小技巧”的完整攻略。 1. 变量值交换 有一种交换变量值的另类写法,可以用解构赋值完成: let a = 1; let b = 2; [a, b] = [b, a]; console.log(a) //输出2 console.log(b) //输出1 2. 使用扩展运算符复制数组 扩展运算符(spre…

    JavaScript 2023年5月17日
    00
  • Javascript中暂停功能的实现代码

    要实现Javascript中的暂停功能,可以采用以下几种方法: 方法一:使用setTimeout 使用setTimeout函数可以实现暂停功能,具体实现方式如下: function sleep(milliseconds) { return new Promise(resolve => setTimeout(resolve, milliseconds))…

    JavaScript 2023年6月10日
    00
  • JavaScript数组去重的方法总结【12种方法,号称史上最全】

    我将根据您提供的问题,详细讲解如何使用JavaScript实现数组去重。请注意,这是一个12种方法的综合总结,包括常规的方法和使用ES6的新语法实现的方法,希望您能够学到一些有用的知识。 一、常规方法 1. 使用for循环双重遍历 该方法使用两重循环遍历整个数组,内部循环从外部循环的下一个元素开始,如果找到一个与当前元素相同的元素,则将其从数组中删除。时间复…

    JavaScript 2023年5月27日
    00
  • js仿360开机效果

    以下是详细的“js仿360开机效果”攻略。 简介 360开机效果是指当我们打开360安全卫士等产品时,会出现一个渐进式加载的进度条动画效果。这个效果也可以用JavaScript来实现,本攻略将介绍如何使用JavaScript实现。 实现思路 实现这个效果的核心思路是: 使用CSS实现加载进度条; 在进度条加载期间,每个等待的时间间隔内,增加对进度条的长度的微…

    JavaScript 2023年6月11日
    00
  • Element-Plus el-col、el-row快速布局及使用方法

    Element-Plus el-col、el-row快速布局及使用方法 Element-Plus是一套基于Vue3的UI框架,其中包含了el-col、el-row等快速布局组件。在本攻略中,我们将详细讲解Element-Plus中el-col、el-row的使用方法,以及如何快速进行页面布局。 el-col组件 基本用法 el-col组件用于将页面水平分成2…

    JavaScript 2023年6月10日
    00
  • 学习LayUI时自研的表单参数校验框架案例分析

    下面是“学习LayUI时自研的表单参数校验框架案例分析”的完整攻略: 学习LayUI时自研的表单参数校验框架案例分析 前言 LayUI是一款基于jQuery的UI库,广泛应用于前端开发中。其提供了丰富的组件和插件,方便快捷地构建Web界面。在使用LayUI过程中,表单参数校验是绕不过去的一个步骤,为此我们研发了一套表单校验框架,下面将详细介绍我们的研发过程和…

    JavaScript 2023年6月10日
    00
  • javascript getElementByTagName的使用

    JavaScript getElementByTagName的使用 getElementByTagName是JavaScript中获取网页元素标签名的方法,它可以选取指定标签名的所有元素对象并以数组的形式返回。 语法 document.getElementsByTagName(tagname); 参数说明: tagname:要查找的元素标签名。可以是字符串,…

    JavaScript 2023年6月10日
    00
  • Three.js实现雪糕地球的使用示例详解

    首先,为了使用Three.js实现雪糕地球,我们需要在网站中引入Three.js库,可以通过以下代码在HTML文件中引入: <script src="./js/three.min.js"></script> 为了呈现一个球形地球,我们使用Three.js中的球体(SphereGeometry)并将其放置在场景(Sc…

    JavaScript 2023年6月11日
    00
合作推广
合作推广
分享本页
返回顶部