js控制的遮罩层实例介绍

我来详细讲解一下“js控制的遮罩层实例介绍”的完整攻略。

我来详细讲解一下“js控制的遮罩层实例介绍”的完整攻略。

什么是遮罩层?

遮罩层(Mask)是指用于覆盖在整个页面或页面上的某个区域上的一种层,其作用是遮盖页面或某个区域,通常用于实现模态框的效果。

实现遮罩层的方式

实现遮罩层主要有以下两种方式:

  1. 使用CSS实现
  2. 使用JavaScript实现

在这里,我们主要讲解使用JavaScript实现遮罩层的方式。

使用JavaScript实现遮罩层

实现步骤

使用JavaScript实现遮罩层的主要步骤如下:

  1. 在HTML中添加需要被遮罩的内容(比如模态框)
  2. 创建遮罩层的容器元素,并设置其样式
  3. 将遮罩层的容器元素添加到DOM树中
  4. 监听窗口resize事件,更新遮罩层容器元素的尺寸
  5. 监听窗口scroll事件,更新遮罩层容器元素的位置和尺寸
  6. 监听遮罩层容器元素上的点击事件,当点击遮罩层时,隐藏遮罩层和模态框

示例一

下面是一段实现遮罩层的示例代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>遮罩层实例</title>
    <style>
        /* 遮罩层容器元素的样式 */
        .mask {
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background-color: rgba(0, 0, 0, .5);
            display: none;
        }
        /* 模态框的样式 */
        .modal {
            position: absolute;
            top: 50%;
            left: 50%;
            width: 400px;
            height: 300px;
            margin-top: -150px;
            margin-left: -200px;
            background-color: #fff;
            z-index: 9999;
            display: none;
        }
    </style>
</head>
<body>
    <!-- 模态框 -->
    <div class="modal">
        <h2>这是一个模态框</h2>
        <p>这里是模态框的内容</p>
    </div>
    <!-- 遮罩层容器元素 -->
    <div class="mask"></div>

    <script>
        // 获取遮罩层容器元素
        var mask = document.querySelector('.mask');

        // 显示遮罩层和模态框
        function showModal() {
            mask.style.display = 'block';
            document.querySelector('.modal').style.display = 'block';
        }

        // 隐藏遮罩层和模态框
        function hideModal() {
            mask.style.display = 'none';
            document.querySelector('.modal').style.display = 'none';
        }

        // 监听遮罩层容器元素上的点击事件
        mask.addEventListener('click', hideModal);

        // 监听窗口resize事件,更新遮罩层容器元素的尺寸
        window.addEventListener('resize', function () {
            mask.style.width = window.innerWidth + 'px';
            mask.style.height = window.innerHeight + 'px';
        });

        // 监听窗口scroll事件,更新遮罩层容器元素的位置和尺寸
        window.addEventListener('scroll', function () {
            mask.style.top = window.scrollY + 'px';
            mask.style.left = window.scrollX + 'px';
            mask.style.width = window.innerWidth + 'px';
            mask.style.height = window.innerHeight + 'px';
        });

        // 显示模态框
        showModal();
    </script>
</body>
</html>

上面的代码实现了一个简单的遮罩层。当页面加载完成后,会自动显示一个模态框和遮罩层。当点击遮罩层时,遮罩层和模态框会自动隐藏。

示例二

下面是另一个实现遮罩层的示例代码,这个示例使用了jQuery库:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>遮罩层实例</title>
    <style>
        /* 遮罩层容器元素的样式 */
        .mask {
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background-color: rgba(0, 0, 0, .5);
            display: none;
        }
        /* 模态框的样式 */
        .modal {
            position: absolute;
            top: 50%;
            left: 50%;
            width: 400px;
            height: 300px;
            margin-top: -150px;
            margin-left: -200px;
            background-color: #fff;
            z-index: 9999;
            display: none;
        }
    </style>
</head>
<body>
    <!-- 模态框 -->
    <div class="modal">
        <h2>这是一个模态框</h2>
        <p>这里是模态框的内容</p>
    </div>
    <!-- 遮罩层容器元素 -->
    <div class="mask"></div>

    <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
    <script>
        // 显示遮罩层和模态框
        function showModal() {
            $('.mask').show();
            $('.modal').show();
        }

        // 隐藏遮罩层和模态框
        function hideModal() {
            $('.mask').hide();
            $('.modal').hide();
        }

        // 监听遮罩层容器元素上的点击事件
        $('.mask').on('click', hideModal);

        // 监听窗口resize事件,更新遮罩层容器元素的尺寸
        $(window).on('resize', function () {
            $('.mask').css({
                width: $(window).width(),
                height: $(window).height()
            });
        });

        // 监听窗口scroll事件,更新遮罩层容器元素的位置和尺寸
        $(window).on('scroll', function () {
            $('.mask').css({
                top: $(window).scrollTop(),
                left: $(window).scrollLeft(),
                width: $(window).width(),
                height: $(window).height()
            });
        });

        // 显示模态框
        showModal();
    </script>
</body>
</html>

上面的代码与前一个示例的实现步骤基本相同,只是使用了jQuery库来使代码更简洁易读。

这是一个使用JavaScript控制遮罩层的实例攻略,以上是两个基本的使用方法示例。

本文标题为:js控制的遮罩层实例介绍

基础教程推荐