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日

相关文章

  • JavaScript ES6常用基础知识总结

    JavaScript ES6常用基础知识总结 变量声明 在ES6之前,JavaScript的变量声明只有 var 一种方式,而 var 有些缺陷,如变量提升和没有块级作用域。ES6 引入了 let 和 const 两种声明变量的方式,let 用于声明变量,其同作用域内的变量没有冲突,不受外部的影响。const 用于声明不可变的常量,其一旦声明就不能被修改。 …

    JavaScript 2023年5月28日
    00
  • ASP.NET中XML转JSON的方法实例

    下面我将为您详细讲解 ASP.NET 中 XML 转 JSON 的方法实例。 一、XML转JSON的方法介绍 XML 和 JSON 是 Web 应用程序中常用的两种数据格式,但是它们之间的转换并不是十分方便。在 ASP.NET 中,可以使用 JsonConvert 类库实现 XML 转 JSON 的功能。 JsonConvert 是一个类库,它提供了一系列静…

    JavaScript 2023年6月11日
    00
  • js 字符串转换成数字的三种方法

    以下是完整攻略。 JavaScript字符串转换成数字的三种方法 在JavaScript中,字符串可以转换成数字。下面介绍三种常用的字符串转换成数字的方法。 方法一:使用parseInt()函数 可以使用parseInt()函数将字符串转换成整数,这个函数的语法如下: parseInt(string, radix) 其中, string:要被转换成数字的字符…

    JavaScript 2023年5月28日
    00
  • JavaScript实现cookie的写入、读取、删除功能

    当一个web页面被加载到浏览器中时,浏览器会为它分配一个cookie的存储区域。此时,开发者可以通过JavaScript代码来操作cookie的写入、读取和删除等功能。 写入cookie 可以使用document.cookie来写入cookie。document.cookie是一个字符串,它存储着当前网页的所有cookie。写入cookie的格式如下: do…

    JavaScript 2023年6月11日
    00
  • JavaScript reduce方法使用方法介绍

    当我们需要对数组进行一系列的计算操作时,reduce()方法就非常有用了。本篇攻略将带您详细了解JavaScript中的reduce()方法,包括使用方法、参数、返回值。 reduce()方法介绍 reduce()方法是JavaScript数组的高阶函数之一,其作用在于通过遍历数组中的所有元素并将它们累加起来,最终返回一个结果。 array.reduce(c…

    JavaScript 2023年6月10日
    00
  • javascript中使用正则表达式进行字符串验证示例

    首先,让我们来介绍JavaScript正则表达式。正则表达式是一种用于匹配文本模式的工具,JavaScript中的正则表达式使用RegExp对象来创建,并可以通过正则表达式字面量或RegExp构造函数来定义。 在JavaScript中使用正则表达式进行字符串验证有很多应用,例如对输入的内容进行格式检查、密码校验、邮箱格式验证等。 接下来我们将介绍如何通过正则…

    JavaScript 2023年5月28日
    00
  • javascript js cookie的存储,获取和删除

    JavaScript Cookie是一种客户端存储技术,允许网站存储少量信息在客户端的浏览器中。以下是JavaScript Cookie的存储、获取和删除的详细攻略: 存储 为了存储Cookie,需要使用document.cookie属性。这个属性允许我们在客户端创建、读取和删除Cookie。以下代码展示了如何创建一个Cookie: document.coo…

    JavaScript 2023年6月11日
    00
  • js实现图片切换(动画版)

    我们来详细讲解一下 JS 实现图片切换(动画版)的完整攻略。 1. 需求分析和思路设计 首先我们需要搞清楚我们要实现一个什么样的功能。简单来说,我们需要实现一个图片轮播器的功能。具体来说,我们需要实现以下需求: 在一个容器内,切换显示不同的图片; 实现图片的渐变过渡效果; 实现循环展示,即最后一张图片之后回到第一张图片。 了解了这些需求后,我们可以开始考虑如…

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