JS实现自定义弹窗功能

当用户操作的某些行为需要提示时,一般会使用弹窗(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日

相关文章

  • Cocos2d-x UI开发之CCControlButton控件类实例

    Cocos2d-x UI开发之CCControlButton控件类实例 简介 在Cocos2d-x UI开发中,CCControlButton是一种常用的控件类。它能够方便地创建按钮,并且提供许多的自定义配置。本文将对CCControlButton的使用进行详细介绍,包括创建、设置属性、添加事件等。 创建控件 创建CCControlButton控件实例的方法…

    other 2023年6月27日
    00
  • swift3.0:associatedtype

    Swift 3.0: AssociatedType的完整攻略 在Swift 3.0中,AssociatedType是一种非常有用的类型协议,它允许我们在协议中定义一个占位符类型,以便在实现协议时指定具体的类型。本文将介绍AssociatedType的定义、使用方法和两个示例说明。 AssociatedType的定义 AssociatedType是一种协议中的…

    other 2023年5月9日
    00
  • Android应用App更新实例详解

    以下是使用标准的Markdown格式文本,详细讲解Android应用App更新的完整攻略: Android应用App更新实例详解 步骤1:获取当前应用的版本号 在进行应用更新之前,首先需要获取当前应用的版本号。您可以使用PackageManager类获取应用的包名和版本号。 示例代码: String packageName = getPackageName(…

    other 2023年10月13日
    00
  • 浅谈php生成静态页面

    浅谈PHP生成静态页面 静态页面是指使用HTML语言编写的没有后端逻辑的页面,通常用于展示简单内容的网站页面,相对于动态页面来说更加轻量,速度更快。 而PHP作为一门后端语言,可以动态生成HTML页面,并且将其缓存为静态页面,在用户访问时直接返回静态页面,从而提高网站的访问速度。 PHP生成静态页面的方法 使用ob_start()函数 PHP中的ob_sta…

    其他 2023年3月28日
    00
  • ssl证书与java keytool工具

    SSL证书与Java keytool工具的完整攻略 本文将为您提供SSL证书与Java keytool工具的完整攻略,包括SSL证书的基本概念、Java keytool工具的使用方法、以及两个示例说明。 SSL证书的基本概念 SSL证书是一种数字证书,用于验证网站的身份和加密网站与用户之间的通信。SSL证书由证书颁发机构(CA)颁发,包含网站的公钥和其他信息…

    other 2023年5月6日
    00
  • sql server递归子节点、父节点sql查询表结构的实例

    SQL Server是一个强大的关系型数据库管理系统,常常被用来实现复杂的数据结构。其中,递归查询是SQL Server特有的功能之一,可以用来查询表中的父子关系。本篇攻略将全面介绍如何使用SQL Server递归查询来查询表结构中的子节点和父节点。 什么是递归查询? 递归查询是指一种自我引用的查询方法。在一个表中,每个行都包含一个指向另一个行的引用,形成类…

    other 2023年6月27日
    00
  • vue地图可视化arcgis篇

    Vue地图可视化ArcGIS篇 随着互联网的不断发展,地图可视化在很多应用场景中逐渐得到了广泛的应用。而ArcGIS是一套完整的地理信息系统,其中也包含了强大的地图可视化工具。本文将以Vue为前端框架,ArcGIS为后台GIS服务,介绍如何实现基于Vue的地图可视化应用。 准备工作 在开始以Vue实现ArcGIS地图可视化之前,需要准备以下工作: 安装Vue…

    其他 2023年3月28日
    00
  • SpringBoot2.3集成ELK7.1.0的示例代码

    以下是Spring Boot 2.3集成ELK 7.1.0的示例代码的完整攻略: 步骤1:安装和配置ELK Stack 首先,安装Elasticsearch、Logstash和Kibana。您可以从官方网站下载并按照它们的安装指南进行安装。 配置Elasticsearch: 打开elasticsearch.yml配置文件。 设置cluster.name为您的…

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