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日

相关文章

  • wgan-gp实战

    下面是关于“wgan-gp实战”的完整攻略: 1. 什么是WGAN-GP WGAN-GP是一种生成对抗网络(GAN)的变体,它使用梯度惩罚来替代传统GAN中的判别器损失函数。WGAN-GP的全称是Wasserstein GAN with Gradient Penalty,它的目标是训练一个生成器网络,使其能够生成与真实数据分布相似的样本。 2. WGAN-G…

    other 2023年5月7日
    00
  • 如何使用git拉取代码及提交代码(详细)

    以下是详细讲解“如何使用Git拉取代码及提交代码”的完整攻略,包含两个示例说明: 如何使用Git拉取代码及提交代码 Git是一种分布式版本控制系统,可以方便地管理代码的版本和变更。本攻略将介绍如何使用Git拉取代码及提交代码。 步骤一:安装Git 首先,需要在本地计算机上安装Git。可以从Git官网下载合自己操作系统的Git安装包,然后按照安装向导进行安装。…

    other 2023年5月10日
    00
  • jquery获取select选中的文本与值

    以下是“jQuery获取select选中的文本与值的完整攻略”的详细讲解,过程中包含两个示例说明的标准Markdown格式文本: jQuery获取选中的文本与值的完整攻略 在jQuery中,可以使用val()方法获取select选中的值,使用text()方法获取select选中文本。以下是这两个方法的详细步骤: 获取select选中的值 可以使用val()方…

    other 2023年5月10日
    00
  • guava本地缓存

    以下是关于Guava本地缓存的完整攻略,包含两个示例。 Guava本地缓存 Guava是Google开发的一个Java库,提供了许多实用的工具类和数据结构。其中,Guava本地缓存是一个非常实用的工具,可以帮助我们应用程序中缓存数据,提高应用程序的性能。以下是使用Guava本地缓存的详细攻略。 1. 添加依赖 在使用Guava本地缓存之前,我们需要在项目中添…

    other 2023年5月9日
    00
  • 关于ConditionalOnMissingBean失效问题的追踪

    关于ConditionalOnMissingBean失效问题的追踪 问题描述 在开发过程中,有时候我们会使用@ConditionalOnMissingBean注解来确保在某个bean不存在时才注册另一个bean。但是有时候会发现该注解并没有起作用,即使已经存在了同名的bean,条件判断仍然为true。下面将详细讲解这个问题的追踪过程。 追踪过程 首先,确认使…

    other 2023年6月28日
    00
  • C语言中计算字符串长度与分割字符串的方法

    计算字符串长度 在C语言中,可以通过strlen()函数计算字符串的长度。strlen()函数是字符串操作函数之一,定义在头文件<string.h>中。 使用示例: #include <stdio.h> #include <string.h> int main() { char str[] = "hello, w…

    other 2023年6月20日
    00
  • TabLayout用法详解及自定义样式

    项目中常见的 TabLayout 控件是 Android Design Support Library 中的 TabLayout,它可以让我们轻松地实现标签页切换,特别适合用于一些包含多个页面的 App 中。本文将介绍 TabLayout 的用法及自定义样式的实现。 TabLayout 简介 TabLayout 是一个可滚动标签页的控件,和 ViewPage…

    other 2023年6月25日
    00
  • Linux 下 安装jdk 1.7

    在Linux下安装JDK 1.7的过程相对简单,但是需要注意一些细节。下面是Linux下安装JDK 1.7的完整攻略。 下载JDK 1.7 在Oracle官网下载页面(https://www.oracle.com/java/technologies/javase/javase7-archive-downloads.html)下载JDK 1.7的Linux版本…

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