遮罩层点击按钮弹出并且具有拖动和关闭效果(两种方法)

阅读时长 4 分钟读完

在前端开发中,遮罩层弹出框是经常使用到的交互组件之一。本文将介绍两种方法来实现一个具有拖动和关闭效果的遮罩层弹出框,并提供示例代码。通过本文的学习,你将能够了解如何使用 jQuery 和 Vue.js 分别实现这个弹出框。

方法一:使用 jQuery 实现

步骤一:HTML 结构

首先,我们需要创建一个 HTML 结构来容纳这个弹出框。以下是一个简单的 HTML 结构:

-- -------------------- ---- -------
---- ----------------------
  ---- ---------------------
    ---- ---------------------
      --------- -----------
      ------- ----------------------------------
    ------
    ---- -------------------
      -------- --------
    ------
  ------
------

这里,modal-overlay 是遮罩层,modal-window 是弹出框,modal-header 是弹出框的标题栏,modal-body 是弹出框的主体内容。

步骤二:CSS 样式

接下来,我们需要为弹出框添加 CSS 样式。以下是一个简单的 CSS 样式:

-- -------------------- ---- -------
-------------- -
  --------- ------
  ---- --
  ----- --
  ------ -----
  ------- -----
  ----------------- ----------------
  -------- -----
-

------------- -
  --------- ---------
  ---- ----
  ----- ----
  ---------- --------------- ------
  ----------------- -----
  -------------- ----
  -------- -----
  ----------- --- --- ---- ----------------
  -------- ------
-

------------- -
  -------- -----
  ---------------- --------------
  ------------ -------
  -------------- -----
-

---------- -
  ----------- -----
  ------- -----
  ---------- -----
  ------- --------
-

这里,我们使用了 position 属性来定位元素,transform 属性来居中弹出框,background-color 属性来设置背景色,box-shadow 属性来添加阴影效果,z-index 属性来设置层级关系。

步骤三:JavaScript 代码

最后,我们需要添加一些 JavaScript 代码来实现拖动和关闭效果。以下是一个简单的 JavaScript 代码:

-- -------------------- ---- -------
------------ -
  --- ----- - -------------------

  -- ----
  --------------------- ----------- -
    --- ------ - ------- - ----------------------
    --- ------ - ------- - ---------------------
    --- ---- - -----

    --------------------------- ----------- -
      --- ---- - ------- - -------
      --- --- - ------- - -------

      -------------
        ----- ---- - -----
        ---- --- - ----
      ---
    ---

    ------------------------- ---------- -
      -----------------------------
      ---------------------------
    ---
  ---

  -- ----
  --------------------------- ---------- -
    ------------------------------
  ---
---

这里,我们使用了 on 方法来监听拖动和关闭按钮的事件,使用 offset 方法来获取元素的位置,使用 css 方法来改变元素的样式。

方法二:使用 Vue.js 实现

步骤一:HTML 结构

首先,我们需要创建一个 Vue 组件来容纳这个弹出框。以下是一个简单的 Vue 组件:

纠错
反馈