创建自定义遮罩层的实现方法-纯JS控制遮罩层样式

一、什么是遮罩层

遮罩层是我们在网页中常见的一种效果,它可以把一个div或者是整个页面遮盖住,以达到弹出框、提示等效果。一般来说,遮罩层是全屏大小的半透明层,上面包含了目标内容。

在前端开发中,我们通常使用CSS属性来控制遮罩层的样式。但是本文将阐述通过纯JS来自定义遮罩层的实现方法,主要包括以下几个方面:

二、创建/删除遮罩层

定义一个函数,通过JS动态在页面中创建遮罩层,并且可以在不需要时把它删除掉。

/**
 * 创建遮罩层
 */
function createMask(){
    var mask = document.createElement('div');
    mask.setAttribute('class', 'mask');
    document.body.appendChild(mask);
}

/**
 * 删除遮罩层
 */
function removeMask(){
    var mask = document.querySelector('.mask');
    mask.parentNode.removeChild(mask);
}

上面的代码中,我们定义了两个函数,创建遮罩层的函数 createMask 和删除遮罩层的函数 removeMask。在这两个函数中,我们通过JS动态创建/删除一个 div,加上特定的样式,这就是我们的遮罩层。

三、控制遮罩层的样式

接下来,我们需要对遮罩层的样式进行控制,这可以通过CSS属性来实现。以下是一个基础的遮罩层的CSS样式:

.mask {
  position: fixed;
  z-index: 1000;
  left: 0;
  top: 0;
  right: 0;
  bottom: 0;
  background-color: rgba(0, 0, 0, 0.5);
}

在上面的代码中,我们设置了遮罩层为 fixed 定位,z-index 为 1000,left、top、right、bottom 都为 0,这样可以让遮罩层充满整个屏幕。其中 background-color 为半透明黑色。

通过JS,我们可以修改遮罩层的属性来控制遮罩层的样式。以下是一个修改遮罩层背景颜色的函数:


/**
 * 修改遮罩层背景颜色
 * @param {string} color - 背景颜色
 */
function changeMaskBgColor(color){
    var mask = document.querySelector('.mask');
    mask.style.backgroundColor = color;
}

在上面的代码中,我们通过 document.querySelector 获取到遮罩层元素,然后通过设置元素的 style 属性来修改背景颜色。

四、遮罩层的实际应用

最后,我们来看一个实际应用遮罩层的例子。以下是一个简单的登录框,当点击登录按钮时,会在页面中创建一个遮罩层,并弹出登录框;当点击登录框外的遮罩层或关闭按钮时,会删除该遮罩层。

/**
 * 打开登录框
 */
function openLoginBox(){
    createMask(); // 创建遮罩层
    var loginBox = document.createElement('div');
    loginBox.setAttribute('class', 'login-box');
    loginBox.innerHTML = '<div class="login-content">登录框内容</div><div class="close-btn">关闭</div>';
    document.body.appendChild(loginBox); // 将登录框添加到body中

    // 点击关闭按钮或者遮罩层时,删除遮罩层和登录框
    var closeBtn = document.querySelector('.close-btn');
    closeBtn.onclick = removeMask;
    var mask = document.querySelector('.mask');
    mask.onclick = removeMask;
}

/**
 * 初始化函数
 */
(function(){
    var loginBtn = document.querySelector('.login-btn');
    loginBtn.onclick = openLoginBox;
}());

在上面的代码中,我们创建了一个打开登录框的函数 openLoginBox,在该函数中,我们先创建遮罩层,并在遮罩层上添加了登录框的 HTML 内容。最后,我们通过设置登录框的样式和事件,使其在页面中弹出。

五、小结

纯JS控制遮罩层样式的实现方法很简单,我们只需要用JS来动态创建、删除 div 元素,并通过CSS属性、JS设置元素的 style 属性来控制遮罩层的样式。遮罩层是现代网页设计中常用的一种元素,有了这个技巧,我们可以更加方便地自定义和控制遮罩层的样式。

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/258374.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-12-15 12:49
下一篇 2024-12-15 12:49

相关推荐

  • 解决.net 6.0运行闪退的方法

    如果你正在使用.net 6.0开发应用程序,可能会遇到程序闪退的情况。这篇文章将从多个方面为你解决这个问题。 一、代码问题 代码问题是导致.net 6.0程序闪退的主要原因之一。首…

    编程 2025-04-29
  • ArcGIS更改标注位置为中心的方法

    本篇文章将从多个方面详细阐述如何在ArcGIS中更改标注位置为中心。让我们一步步来看。 一、禁止标注智能调整 在ArcMap中设置标注智能调整可以自动将标注位置调整到最佳显示位置。…

    编程 2025-04-29
  • Python创建分配内存的方法

    在python中,我们常常需要创建并分配内存来存储数据。不同的类型和数据结构可能需要不同的方法来分配内存。本文将从多个方面介绍Python创建分配内存的方法,包括列表、元组、字典、…

    编程 2025-04-29
  • Python中init方法的作用及使用方法

    Python中的init方法是一个类的构造函数,在创建对象时被调用。在本篇文章中,我们将从多个方面详细讨论init方法的作用,使用方法以及注意点。 一、定义init方法 在Pyth…

    编程 2025-04-29
  • Python中读入csv文件数据的方法用法介绍

    csv是一种常见的数据格式,通常用于存储小型数据集。Python作为一种广泛流行的编程语言,内置了许多操作csv文件的库。本文将从多个方面详细介绍Python读入csv文件的方法。…

    编程 2025-04-29
  • 用不同的方法求素数

    素数是指只能被1和自身整除的正整数,如2、3、5、7、11、13等。素数在密码学、计算机科学、数学、物理等领域都有着广泛的应用。本文将介绍几种常见的求素数的方法,包括暴力枚举法、埃…

    编程 2025-04-29
  • 使用Vue实现前端AES加密并输出为十六进制的方法

    在前端开发中,数据传输的安全性问题十分重要,其中一种保护数据安全的方式是加密。本文将会介绍如何使用Vue框架实现前端AES加密并将加密结果输出为十六进制。 一、AES加密介绍 AE…

    编程 2025-04-29
  • Python学习笔记:去除字符串最后一个字符的方法

    本文将从多个方面详细阐述如何通过Python去除字符串最后一个字符,包括使用切片、pop()、删除、替换等方法来实现。 一、字符串切片 在Python中,可以通过字符串切片的方式来…

    编程 2025-04-29
  • 用法介绍Python集合update方法

    Python集合(set)update()方法是Python的一种集合操作方法,用于将多个集合合并为一个集合。本篇文章将从以下几个方面进行详细阐述: 一、参数的含义和用法 Pyth…

    编程 2025-04-29
  • Vb运行程序的三种方法

    VB是一种非常实用的编程工具,它可以被用于开发各种不同的应用程序,从简单的计算器到更复杂的商业软件。在VB中,有许多不同的方法可以运行程序,包括编译器、发布程序以及命令行。在本文中…

    编程 2025-04-29

发表回复

登录后才能评论