html+css+js实现dialog对话框

news2024/9/30 19:46:43

实现效果

HTML部分 

<span class="text">点击打开 Dialog</span>
  <!-- 警告框 -->
  <div class="alert">
    <div class="header"><i>X</i> </div>
    <div class="content">确认关闭</div>
    <div class="btns">
      <button class="cancel">取消</button>
      <button class="sure">确定</button>
    </div>
  </div>
    
  <!-- 模态框 -->
  <!-- <div class="modal">
    <div class="header">提示<i>X</i> </div>
    <div class="body">这是一段信息</div>
    <div class="footer">
      <button class="cancel">取消</button>
      <button class="sure">确定</button>
    </div>
  </div> -->

CSS部分

<style>
    *{
      margin: 0;
      padding: 0;
      box-sizing: border-box;
    }
    body{
      position: relative;
      /* background-color: #7f7f7f; */
      font-family: Helvetica Neue, Helvetica, PingFang SC, Hiragino Sans GB, Microsoft YaHei, SimSun, sans-serif;
      font-weight: 400;
    }
    span{
      color: #409eff;
      border: none;
      background: transparent;
      font-size: 18px;
      cursor: pointer;
    }
    span:hover{
      opacity: 0.7;
    }
    .modal{
      border-radius: 5px;
      margin: 80px auto;
      width: 500px;
      background-color: #fff;
    }
    .modal .header{
      display: flex;
      justify-content: space-between;
      height: 50px;
      padding: 20px 20px 10px 20px;
    }
    i{
      cursor: pointer;
    }
    .modal .body{
      padding: 30px 20px;
      height: 80px;
      color: #606266;
      font-size: 14px;
      word-break: break-all;
    }
    .modal .footer{
      text-align:right;
      padding: 10px 20px 20px 20px;
      height: 70px;
    }
    button{
      display: inline-block;
      width: 70px;
      height: 40px;
      background-color: #fff;
      border: 1px solid #dcdfe6;
      color: #606266;
      border-radius: 4px;
      cursor: pointer;
    }
    button.cancel:hover{
      border: 1px solid rgba(64, 158, 255, 0.1);
      background-color:rgba(64, 158, 255, 0.1);
      color: #409eff;
    }
    button.sure{
      color: #fff;
      background-color: #409eff;
      border-color: #409eff;
      margin-left: 20px;
    }
    button.sure:hover{
      opacity: 0.8;
    }
    i{
      font-style: normal;
    }
    .alert{
      display: none;
      position: absolute;
      left: 50%;
      top: 220px;
      transform: translateX(-50%);
      border-radius: 4px;
      width: 400px;
      background-color: #fff;
    }
    .alert .header{
      color: #606266;
      padding: 15px 20px 0 20px;
      height: 30px;
      text-align:right;
    }
    .alert .content{
      height: 50px;
      color: #606266;
      padding: 20px 20px 10px 20px;
    }
    .alert .btns{
      text-align: right;
      padding: 10px 20px 10px 20px;
      height: 50px;
    }
    .alert button{
      border-radius: 3px;
      width: 50px;
      height: 30px;
    }
    .alert .sure{
      margin-left: 15px;
    }
  </style>

JS部分

<script>
    // 1.创建模态框
    function Modal(title='',message=''){
      this.modalBox=document.createElement('div')
      this.modalBox.className='modal'
      this.modalBox.innerHTML=`
      <div class="modal">
        <div class="header">${title}<i>X</i> </div>
        <div class="body">${message}</div>
        <div class="footer">
          <button class="cancel">取消</button>
          <button class="sure">确定</button>
        </div>
      </div>
      `
      // console.log(this.modalBox);
    }
    
     function closetwo(){
      document.querySelector('.alert').style.display='none'
     }
    // open方法
    Modal.prototype.open=function(){
      document.body.style.backgroundColor='#7f7f7f'
      document.body.append(this.modalBox)
      // 这里要使用箭头函数
      // document.querySelector('i').addEventListener('click',()=>{
      //   this.close()
      // })
      document.querySelector('.footer .cancel').addEventListener('click',()=>{
        this.close()
      })
      document.querySelector('.footer .sure').addEventListener('click',()=>{
        this.close()
      })
      document.querySelector('.modal i').addEventListener('click',()=>{
        document.querySelector('.alert').style.display='block'
        document.querySelector('.alert i').addEventListener('click',()=>{
          closetwo()
        })
        document.querySelector('.alert .cancel').addEventListener('click',()=>{
          closetwo()
        })
        document.querySelector('.alert .sure').addEventListener('click',()=>{
          this.close()
          closetwo()
        })
      })
    }
    // close方法
    Modal.prototype.close=function(){
      document.body.style.backgroundColor='#fff'
      this.modalBox.remove()
    }

    document.querySelector('.text').addEventListener('click',function(){
      const text = new Modal('提示','这是一段信息')
      text.open()
    })
  </script>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2180549.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python 实现 YouTube 视频自动上传

文章目录 前言申请 Google API 秘钥启用 API创建项目凭证配置 API下载生成的凭据文件 youtube-upload 工具使用安装配置秘钥使用 其它问题程序尚未完成 Google 验证流程 个人简介 前言 youtube-upload 库 Python 中一个用于实现 YouTube 视频自动上传的实用工具。以下是关于如…

【 微信机器人+ AI 搭建】

摘要&#xff1a; 各种大模型已经出来好久了&#xff0c;各类app也已经玩腻了&#xff0c;接下来&#xff0c;就在考虑&#xff0c;怎么让大模型&#xff0c;利益最大化。 本人没有显著的家世&#xff0c;没有富婆包养&#xff0c;只能自己抽点时间&#xff0c;研究下技术&…

Java使用BeanUtils.copyProperties实现对象的拷贝

1、BeanUtils.copyProperties() 方法的使用 BeanUtils.copyProperties 方法是 Java 中 Spring 框架提供的一个非常实用的工具方法&#xff0c;它用于将一个 JavaBean 对象的属性值拷贝到另一个 JavaBean 对象中。这个方法主要用于简化对象之间的数据转换过程&#xff0c;尤其是…

数学-傅里叶级数的推导

目录&#xff1a; 1、矢量的正交分解 2、信号的正交分解 3、傅里叶级数形式★ 本篇摘录“信号与系统3-傅里叶变换与频域分析”的小部分内容。 1、矢量的正交分解 两矢量V1与V2正交&#xff0c;夹角为90&#xff0c;那么两正交矢量的内积为零&#xff0c;如下图所示。 图4.2…

Excel实现省-市-区/县级联

数据准备 准备省份-城市映射数据&#xff0c;如下&#xff1a; 新建sheet页&#xff0c;命名为&#xff1a;省-市数据源&#xff0c;然后准备数据&#xff0c;如下所示&#xff1a; 准备城市-区|县映射数据&#xff0c;如下&#xff1a; 新建sheet页&#xff0c;命名为&#x…

Open WebUI部署自己的大模型

相关代码地址见文末 1. 概述 Text Generation WebUI 是一个基于网页的界面,提供使用不同语言模型(如Transformers、Llama、ExLlamav2等)进行文本生成的功能。该软件支持以下主要功能: 模型加载:支持从多种框架加载单个或多个LoRA。LoRA微调:在支持的加载器上进行低秩适…

计算神经学笔记01

- **The term neuromorphic is generally used to describe analog, digital, mixed-mode analog/digital VLSI, and software systems that implement several models of neural systems.** - 神经形态一词通常用于描述模拟、数字、混合模式的模拟/数字超大规模集成电路&…

YOLO V8半自动标注工具设计

前提&#xff1a; 对于某些边界不明确的小目标&#xff0c;要是目标由比较多的话&#xff0c;标注起来就会非常麻烦。 如何利用已有训练模型&#xff0c;生成框&#xff0c;进行预标注。再通过调节预标注框的方式&#xff0c;提高标注的效率。 1 通过预先训练的模型生成yolo 格…

12.C++程序中的自定义函数

11.C程序中的常用函数-CSDN博客https://blog.csdn.net/fly_binbin/article/details/142643406上面说的是C程序中内置的一些函数&#xff0c;这些函数是由编译器提供的&#xff0c;可以方便大家的使用&#xff0c;但是很多时候&#xff0c;单纯的内置函数无法满足人们的需求&…

排序题目:重新排列后的最大子矩阵

文章目录 题目标题和出处难度题目描述要求示例数据范围 解法思路和算法代码复杂度分析 题目 标题和出处 标题&#xff1a;重新排列后的最大子矩阵 出处&#xff1a;1727. 重新排列后的最大子矩阵 难度 7 级 题目描述 要求 给定一个大小为 m n \texttt{m} \times \tex…

第三方供应商不提供API接口?教你四步破解集成难题

API开放需求 在企业数字化转型过程中&#xff0c;异构系统之间的连接是信息化阶段不可或缺的一环。通过应用API&#xff0c;企业能够实现不同系统、平台和应用之间的数据交换与功能调用&#xff0c;从而形成端到端的业务流程协同。然而&#xff0c;很多企业在集成第三方供应商…

web应用合规(一)双因子认证2FA解决方案

文章目录 背景知识什么是2FA认证因子分类知识因素持有因素 解决方案密码 OTP密码 TOTP方案对比 参考文档后记 最近做海外项目&#xff0c;对合规方面的要求比较高&#xff0c;写一篇流水账来记录下 登录时的双因子认证过程&#xff0c;于是开启了2FA&#xff08;2 factor au…

CTF网络安全大赛_网安战队简历

CTF网络安全大赛 CTF比赛介绍 CTF&#xff08;Capture The Flag&#xff0c;中文&#xff1a;夺旗赛&#xff09;是网络安全领域中一种信息安全竞赛形式&#xff0c;起源于1996年。DEFCON全球黑客大会&#xff0c;代替了之前黑客们通过互相发起真实攻击进行技术比拼的方式。参…

Shopee虾皮店铺难出爆品?你可能忘了测款!

大部分Shopee虾皮卖家可能都经历过店铺销量一直平平无奇、较长时间出不了爆品的情况&#xff0c;明明做足了功课&#xff0c;为什么还会出现这种现象&#xff1f;那有可能是店铺运营没有明确的重点&#xff0c;太“雨露均沾”反而难以显著提升销量&#xff0c;应该对一个或部分…

西语中关于拆盲盒的表达是什么?柯桥西语口语培训

拆盲盒常常要靠运气。那么西语中有哪些相关的表达呢&#xff1f; 好运 buena suerte - tener &#xff08;buena&#xff09;suerte 最常用的形容“好运”的表达。可以说tener suerte de hacer algo&#xff0c;运气好而做成某事。 - ¡Vaya potra! / ¡Qu potra! 用…

兴业周报|十一黄金周即将到来~楼市利好政策重磅来袭

黄金地段&#xff1a;社区位于东三环核心位置&#xff0c;定位于CBD商务圈旁的纯居住区&#xff0c;容积率不足2.8&#xff0c;绿化率达到50%以上&#xff0c;树种超过80余种&#xff0c;实现“每个楼座都在园林中”的效果。 配套成熟&#xff1a;周边配套齐全&#xff0c;富力…

Error和Exception

1.异常体系结构 &#xff08;1&#xff09;Java把异常当作对象处理&#xff0c;定义一个基类java.lang.Throwable作为所有异常的超类。 &#xff08;2&#xff09;Java API中定义了许多异常类&#xff0c;这些异常类分为两大类&#xff0c;错误Error和异常Exception 2.什么是…

湿气缠身不用愁,拔罐疗法助你轻松“祛湿”!

在这个快节奏的时代&#xff0c;我们常常忽略了身体发出的微妙信号&#xff0c;其中&#xff0c;“湿气重”便是许多现代人面临的隐形健康挑战。湿气&#xff0c;中医理论中的一个重要概念&#xff0c;它像无形的枷锁&#xff0c;悄悄影响着我们的体态、精神状态乃至生活质量。…

react-问卷星项目(3)

项目实战 React Hooks 缓存&#xff0c;性能优化&#xff0c;提升时间效率&#xff0c;但是不要为了技术而优化&#xff0c;应该是为了业务而进行优化 内置Hooks保证基础功能&#xff0c;灵活配合实现业务功能&#xff0c;抽离公共部分&#xff0c;自定义Hooks或者第三方&am…

鸿蒙开发(NEXT/API 12)【穿戴设备信息查询】手机侧应用开发

// 在使用Wear Engine服务前&#xff0c;请导入WearEngine与相关模块 import { wearEngine } from kit.WearEngine; import { BusinessError } from kit.BasicServicesKit;查询穿戴设备是否支持某种WearEngine能力集 注意 该接口的调用需要在开发者联盟申请设备基础信息权限。…