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

yizhihongxing

下面将详细讲解实现“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日

相关文章

  • js 通过Object.defineProperty() 定义和控制对象属性

    JavaScript的Object.defineProperty()方法可以用来定义和控制对象属性的访问方式。它可以让我们在对象上定义新属性,或修改已有属性的getter和setter方法。本文将全面介绍Object.defineProperty()的使用方法及其示例。 基本用法 Object.defineProperty()方法接受三个参数:要定义属性的对…

    JavaScript 2023年5月27日
    00
  • javascript回调函数详解

    JavaScript回调函数详解 在 JavaScript 中,函数可以被传递给另外一个函数作为参数,这个被传递的函数就被称为“回调函数”。回调函数可以在被传递的函数执行完毕后被调用,用来处理结果数据或实现其他功能。回调函数是 JavaScript 中常用的编程技巧之一,它们可以简化代码结构、提高代码可读性和可维护性。 回调函数的使用 在 JavaScrip…

    JavaScript 2023年5月27日
    00
  • js实现跳一跳小游戏

    JS实现跳一跳小游戏,主要分为以下几个步骤: HTML结构:在HTML中需要准备一个游戏容器div和一个小人的img标签。 <div id="game-container"> <img src="little-man.png" id="little-man"> <div…

    JavaScript 2023年6月11日
    00
  • ASP动态生成的javascript表单验证代码

    下面是ASP动态生成的javascript表单验证代码的完整攻略。 什么是ASP动态生成的javascript表单验证代码? ASP动态生成的javascript表单验证代码是在ASP程序中使用javascript代码来验证用户提交的表单数据,它可以确保用户提交的数据格式符合要求,从而排除了很多不合规的数据,提高了网站的安全性和稳定性。 如何实现ASP动态生…

    JavaScript 2023年6月10日
    00
  • Javascript点击其他任意地方隐藏关闭DIV实例

    好的。您想实现的效果是当用户在页面上点击除某个指定的div以外的其它任何地方时,可以将该指定的div隐藏起来。实现这个功能可以使用JavaScript。 下面是实现该功能的完整攻略: 1.在HTML中添加div元素 首先,在HTML文档中添加包含需要隐藏的内容的div元素。例如,下面的代码创建一个div元素: <div id="myDiv&q…

    JavaScript 2023年6月11日
    00
  • Javascript学习指南

    Javascript学习指南 如果你想在Web开发领域中站稳脚跟,那么学习JavaScript是非常重要的。下面是一个完整的学习攻略,可以帮助你快速入门并掌握JavaScript技能。 第一步:了解基本概念 在深入学习JavaScript之前,你需要先了解以下基本概念: 变量和数据类型 运算符 控制流语句 函数 对象和数组 深入了解这些基础知识可以帮助你更好…

    JavaScript 2023年5月17日
    00
  • 一个简单的js动画效果代码

    下面我来详细讲解如何编写一个简单的js动画效果代码。 准备工作 在编写动画代码前,需要准备好HTML文件和CSS文件。 HTML文件 假设需要给一个按钮添加动画效果,我们可以在HTML文件中添加一个按钮元素,如: <button id="btn">按钮</button> CSS文件 我们要将按钮的样式设为相对定位(…

    JavaScript 2023年6月10日
    00
  • 论坛转贴工具中用到的正则表达式学习正则的好例子

    让我来详细讲解一下“论坛转贴工具中用到的正则表达式学习正则的好例子”的完整攻略。 正则表达式简介 正则表达式(Regular Expression,简称RE)是一种用于匹配字符串中的模式的表达式,它具有简洁、灵活、功能强大等优点。在web开发中,我们经常会使用正则表达式来过滤、查询、替换字符串。因此,熟练掌握正则表达式是web开发工程师必不可少的技能之一。 …

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