JS实现自定义弹窗功能

yizhihongxing

当用户操作的某些行为需要提示时,一般会使用弹窗(Modal)来提醒用户。JS实现自定义弹窗功能可以增强网站的交互体验,并且也有助于优化用户体验。

下面是JS实现自定义弹窗功能的完整攻略:

步骤一:创建弹窗模板

首先,我们需要创建一个弹窗模板,在这个模板中设置弹窗的样式、布局等。以下是一个简单的弹窗模板:

<div class="modal">
  <h3 class="modal__title">标题</h3>
  <div class="modal__content">
    <p>内容</p>
  </div>
  <div class="modal__actions">
    <button class="modal__action modal__action--cancel">取消</button>
    <button class="modal__action modal__action--confirm">确认</button>
  </div>
</div>
<div class="backdrop"></div>

其中,.modal 是弹窗的主体部分,.modal__title 是标题部分,.modal__content 是内容部分,.modal__actions 是操作部分。.modal__action--cancel.modal__action--confirm 是取消按钮和确认按钮。

步骤二:JS控制显示和隐藏

我们需要编写JS代码来控制弹窗的显示和隐藏。以下是一个示例:

const modal = document.querySelector('.modal');
const backdrop = document.querySelector('.backdrop');
const cancelButton = document.querySelector('.modal__action--cancel');
const confirmButton = document.querySelector('.modal__action--confirm');

function showModal() {
  modal.classList.add('visible');
  backdrop.classList.add('visible');
}

function hideModal() {
  modal.classList.remove('visible');
  backdrop.classList.remove('visible');
}

function cancelHandler() {
  hideModal();
}

function confirmHandler() {
  hideModal();
}

backdrop.addEventListener('click', hideModal);
cancelButton.addEventListener('click', cancelHandler);
confirmButton.addEventListener('click', confirmHandler);

以上代码中,我们首先获取了弹窗模板中各个元素的引用,然后编写了 showModalhideModal 方法来显示和隐藏弹窗。当点击取消按钮或背景时,会调用 hideModal 方法来隐藏弹窗。当点击确认按钮时,会先执行 confirmHandler 方法,然后再调用 hideModal 方法来隐藏弹窗。

步骤三:自定义弹窗的内容和样式

在上面的步骤中,我们创建了一个简单的弹窗模板,并用JS控制了其显示和隐藏。但是,这个弹窗的内容和样式还比较简陋。为了让弹窗更符合网站的设计风格,我们需要对其进行自定义。

以下是一个自定义弹窗的示例:

<div class="modal">
  <div class="modal__header">
    <h3 class="modal__title">删除文章</h3>
    <button class="modal__close">×</button>
  </div>
  <div class="modal__content">
    <p>你确定要删除此文章吗?</p>
  </div>
  <div class="modal__footer">
    <button class="modal__button modal__button--cancel">取消</button>
    <button class="modal__button modal__button--confirm">删除</button>
  </div>
</div>
<div class="backdrop"></div>

在这个自定义弹窗中,我们添加了 .modal__header.modal__footer 来分别显示标题和按钮。在 .modal__header 中,我们增加了一个关闭按钮,可以让用户直接关闭弹窗。.modal__button--cancel.modal__button--confirm 这两个类名与弹窗模板类似,只是进行了一些定制化的修改。

以下是自定义弹窗的JS代码:

const modal = document.querySelector('.modal');
const backdrop = document.querySelector('.backdrop');
const cancelButton = document.querySelector('.modal__button--cancel');
const confirmButton = document.querySelector('.modal__button--confirm');
const closeButton = document.querySelector('.modal__close');

function showModal() {
  modal.classList.add('visible');
  backdrop.classList.add('visible');
}

function hideModal() {
  modal.classList.remove('visible');
  backdrop.classList.remove('visible');
}

function cancelHandler() {
  hideModal();
}

function confirmHandler() {
  hideModal();
}

function closeHandler() {
  hideModal();
}

backdrop.addEventListener('click', hideModal);
cancelButton.addEventListener('click', cancelHandler);
confirmButton.addEventListener('click', confirmHandler);
closeButton.addEventListener('click', closeHandler);

在这个自定义弹窗的JS代码中,我们使用了 .modal__button--cancel.modal__button--confirm 来代替之前的类名。在关闭按钮的事件处理函数中,我们也增加了对其的监听,并在 closeHandler 方法中调用 hideModal 方法来隐藏弹窗。

以上是JS实现自定义弹窗功能的完整攻略,可以根据自身需要进行定制化修改,在网站中增加更多交互效果。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JS实现自定义弹窗功能 - Python技术站

(1)
上一篇 2023年6月25日
下一篇 2023年6月25日

相关文章

  • 初学python来进行odoo12版本开发

    初学Python进行Odoo 12版本开发的完整攻略 Odoo是一款开源的企业管理软件,它提供了一系列的应用程序,包括销售、采购、库存、会计、人力资源等。Odoo使用Python语言进行开发,因此,如果您想要进行Odoo开发,需要掌握Python语言的基础知识。本文将为您提供初学Python进行Odoo 12版本开发的完整攻略,包括环境搭建、开发工具、Odo…

    other 2023年5月6日
    00
  • K8S 中 kubectl 命令详解

    K8S 中 kubectl 命令详解 什么是 kubectl kubectl 是 Kubernetes 中的一个命令行工具,它允许您与 Kubernetes 集群进行交互,并且可以使用它来管理应用程序、服务、资源等。 使用 kubectl 在使用 kubectl 之前,需先配置好与 Kubernetes 集群的连接方式。 连接到 Kubernetes 集群 …

    other 2023年6月27日
    00
  • github概述

    GitHub 概述 GitHub 是一个基于互联网的代码托管平台,可以帮助开发者存储、管理和分享代码。本文将详细介绍 GitHub 的概述,包括基本概念、功能特点、使用方法和示例说明。 基本概念 GitHub 是一个基于互联网的代码托管平台,由 Chris Wanstrath、PJ Hyett 和 Preston-Werner 于 2008 年创建。GitH…

    other 2023年5月6日
    00
  • C#/.Net 中快速批量给SQLite数据库插入测试数据

    以下是使用C#/.Net快速批量给SQLite数据库插入测试数据的完整攻略: 步骤1:安装SQLite数据库驱动程序 在C#/.Net项目中使用SQLite数据库之前,需要先安装SQLite数据库驱动程序。可以通过NuGet包管理器安装System.Data.SQLite包。 步骤2:创建SQLite数据库连接 在C#/.Net代码中,首先需要创建SQLit…

    other 2023年10月16日
    00
  • stringbuffer清空

    当然,我很乐意为您提供有关“StringBuffer清空”的完整攻略。以下是详细的步骤和两个示例: 1. StringBuffer清空 在Java中,StringBuffer是一个可变的字符串,可以用于动态构建字符串。有时,我们需要清空StringBuffer中的内容,以便重新使用它。以下是如何清空StringBuffer的方法。 2. StringBuff…

    other 2023年5月6日
    00
  • jquery实现简易验证插件封装

    完整攻略:jquery实现简易验证插件封装 1、需求分析 我们需要一个能够实现表单验证的jQuery插件,该插件能够进行基本的表单数据格式验证,验证成功后能够提交表单数据。 2、设计思路 定义一个名为 “validateForm” 的jQuery插件,该插件接受一个配置对象(包含验证规则和提示信息)作为参数,用于对表单数据进行验证。 在插件中使用 jQuer…

    other 2023年6月25日
    00
  • macvtap使用教程

    以下是“Macvtap使用教程的完整攻略”的标准markdown格式文本,其中包含了两个示例说明: Macvtap使用教程 Macvtap是一种虚拟网络设备,可以用于将物理网络适配器的流量传输到虚拟机中。本文将介绍如何使用Macvtap,包括如何创建Macvtap设备、如何将Macvtap设备分配给虚拟机等。 1. 创建Macvtap设备 在Linux系统中…

    other 2023年5月10日
    00
  • jquery制作省份城市地区多选控件总结

    以下是详细的“jquery制作省份城市地区多选控件总结的完整攻略,过程中至少包含两条示例说明”。 问题描述 在Web开发中,省份城市地区多选控件是一种常见的UI组件,用于选择多个省份、城市或地区。本文将介绍如何使用jQuery制作省份城市地区多选控件,包括两个示例说明。 解决方法 在jQuery中,我们可以使用以下步骤制作省份城市地区多选控件: 创建HTML…

    other 2023年5月7日
    00
合作推广
合作推广
分享本页
返回顶部