如何用简单的html,css,js写出一个带有背景层的删除弹出框

虽然每次项目都是主要写后端,但是有时候前端的样式太丑了,也有点看不下去。弹出框是项目中用的比较多的,比如删除,修改或者添加什么的,都需要一个弹出框。

所以这里简单记录一下,应该如何实现。实现效果如下图:

html结构

这里我把弹出框的盒子拆分为上下结构的三块,第一块放弹出框标题和x,第二块放主体内容,第三块为底部放确定和取消按钮。

代码如下:

 <div class="modal" id="del-modal">
        <div class="head">
            <span class="title">删除框</span>
            <span class="ico" onclick="toclose()">x</span>
        </div>
        <hr>
        <div class="content">
            删除不可恢复,是否确定删除?
        </div>
        <div class="foot">
            <button class="normal-bnt" >删除</button>
            <button class="cancel-bnt" onclick="toclose()">取消</button>
        </div>
    </div>

表示背景层的div元素随便放在哪里都可以,我们主要设置它的css就可以

 <!-- 背景层 -->
    <div class="overlay" id="overlay"></div>

css样式

背景层的css样式:主要要让它的position属性为fixed。表示元素相对于浏览器窗口进行定位,而不是相对于包含它的父元素。当浏览器窗口滚动时,使用position: fixed;的元素会保持在相对于窗口固定的位置,不会随着页面滚动而移动。

然后把它铺满整个窗口,并设置背景颜色为灰色透明,就可以有一个透明背景层的效果。要实现铺满则需要让它的高度和宽度都和整个窗口一样高。

.overlay {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.5);
    z-index: 1000;
}

而弹出框的样式,也是需要这种固定的位置,显示在窗口的正中间,不会随页面滚动而滚动。

.modal {
    display: none;
    position: fixed;
    left: 50%;
    top: 50%;
    transform: translate(-50%,-50%);
    border-radius: 5px;
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
    background-color: white;
    z-index: 1001;
}

 position: fixed;   left: 50%;top: 50%;这三项设置可以让弹出框的起始位置变成在距离窗口左边50%和距上50%的位置,但想让弹出框居中,还需要考虑弹出框自己的长和宽,加上transform: translate(-50%,-50%);就可以让弹出框本身像左移动自己宽度一半的距离,像上移动自己高度一半的距离。实现完全居中。

z-index属性:用于设置元素的堆叠顺序(z轴顺序)。可以理解为元素在z轴上的位置,决定了元素在其他元素之上还是之下。我们把弹出框的的z-index设置得比背景层大,就能让弹出框显示在背景层之上。

以上叙述的均为重要的css实现,其他元素的css样式可以根据自己的需求自定义。

js

show方法显示弹出框和背景层,给某个按钮绑定点击事件触发show方法,show方法会给弹出框和背景层加一个class为show的属性。(注意,这里引入了jquery.min.js才可以这样获取元素)

 function show() {
        $("#del-modal").addClass("show");
        $("#overlay").addClass("show");
    }

给x和取消按钮绑定点击事件,点击后移除弹出框和背景层为show的class.

   function toclose() {
        $("#del-modal").removeClass("show");
        $("#overlay").removeClass("show");
    }

整体代码

html:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<link rel="stylesheet" href="弹出框.css">

<body>
    <div style="left: 10%; top: 10%; position:fixed">
        <button onclick="show()">点我弹出删除框</button>
    </div>
    <div class="modal" id="del-modal">
        <div class="head">
            <span class="title">删除框</span>
            <span class="ico" onclick="toclose()">x</span>
        </div>
        <hr>
        <div class="content">
            删除不可恢复,是否确定删除?
        </div>
        <div class="foot">
            <button class="normal-bnt" >删除</button>
            <button class="cancel-bnt" onclick="toclose()">取消</button>
        </div>
    </div>
    <!-- 背景层 -->
    <div class="overlay" id="overlay"></div>
</body>

</html>
<script src="../jquery.min.js"></script>
<script>
    function show() {
        $("#del-modal").addClass("show");
        $("#overlay").addClass("show");
    }

    function toclose() {
        $("#del-modal").removeClass("show");
        $("#overlay").removeClass("show");
    }
</script>

css代码:

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

/* 设置整体页面高度 */
html, body {
    height: 100%;
}

.modal {
    display: none;
    position: fixed;
    left: 50%;
    top: 50%;
    transform: translate(-50%,-50%);
    border-radius: 5px;
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
    background-color: white;
    z-index: 1001;
}

.head {
    padding:10px;
    height: 40px;
    width: 250px;
}

.title {
    font-size: 16px;
}

.ico {
    position: absolute;
    right: 15px;
}

.ico:hover {
    color: #767575;
    cursor: pointer;
}

.content {
    text-align: center;
    margin: 10px;
    font-size: 14px;
    height: 40px;
    line-height: 40px;
}

.foot {
    text-align: right;
    padding-right: 15px;
    margin: 5px 0;
}

.foot button {
    display: inline-block;
    height: 30px;
    width: 60px;
    cursor: pointer;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); /* 添加阴影效果 */
}
.normal-bnt {
   background-color:rgb(64,158,255) ;
   color: white;
}

.overlay {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.5);
    z-index: 1000;
}

.show {
    display: block;
}

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

rtpengine 项目

目录 &#xff01;1. 如果容器内部修改 rtpengine 并且让他生效 守护进程模块(daemon) 内核模块(kernel-module) 录音守护进程模块(recording-daemon) iptables扩展模块(iptables-extension) 2. 在Docker容器中编译好四个模块后&#xff0c;您需要采取以下步骤 1. 加载内…

安装维修制氮设备的注意指南

制氮设备在许多工业领域都发挥着重要作用&#xff0c;无论是确保生产过程中的氮气供应&#xff0c;还是维持设备的稳定运行&#xff0c;正确的安装和维修都是关键。以下是一些重要的注意事项&#xff0c;帮助您顺利完成制氮设备的安装与维修工作。 一、安装注意事项 (一)选址与…

香橙派AIpro如何赋能AI+边缘流媒体设备

文章目录 &#xff08;一&#xff09;前言&#xff08;二&#xff09;AI边缘流媒体设备展示&#xff08;三&#xff09;赋能AI边缘流媒体设备1、准备开发环境2、在板子中下载编译安装SRS3、基本推拉流测试4、多路推流性能测试 &#xff08;四&#xff09;一些注意事项1、开发板…

爬虫-网页基础

HTML 基本语法 HTML&#xff1a;Hyper Text Markup Language, 超文本标记语言&#xff0c;是计算机语言的一种&#xff0c;由元素构成。 p元素 <p>Web 真好玩&#xff01;</p> 由三大部分组成 开始标签&#xff1a;一对尖括号中间包裹这元素名称元素内容&#x…

bmpn2中常用网关的介绍和使用

Parallel gateway 在Flowable&#xff08;前身为Activiti&#xff09;中&#xff0c;Parallel Gateway是一种特殊的流程控制结构&#xff0c;用于在流程实例中并行执行多个任务或活动。它分为两种类型&#xff1a;并行拆分网关&#xff08;Parallel Split Gateway&#xff09;…

Qt通过句柄获取其它进程控件实例

1.通过spy获取想要获取控件的句柄id 通过spy获取另一个软件的文本框的句柄 2.Qt写代码&#xff0c; 根据句柄获取文本框的内容 void getTextFromExternalWindow(HWND hwnd) {const int bufferSize 256;TCHAR buffer[bufferSize];// 获取窗口文本内容int length GetWindowT…

14.优化算法之BFS解决FloodFill算法1

0.FloodFill简介 dfs&#xff1a;深度优先遍历&#xff08;红色&#xff09; bfs&#xff1a;宽度优先遍历 1.图像渲染 算法原理 class Solution {int[] dx { 0, 0, 1, -1 };int[] dy { 1, -1, 0, 0 };public int[][] floodFill(int[][] image, int sr, int sc, int color)…

超快的 Python 包管理工具「GitHub 热点速览」

天下武功&#xff0c;无坚不破&#xff0c;唯快不破&#xff01; 要想赢得程序员的欢心&#xff0c;工具的速度至关重要。仅需这一优势&#xff0c;即可使其在众多竞争对手中脱颖而出&#xff0c;迅速赢得开发者的偏爱。以这款号称下一代极速 Python 包管理工具——uv 为例&…

Facebook:数字社交的引领者与创新者

自2004年诞生以来&#xff0c;Facebook从一个校园网络项目迅速成长为全球最大的社交媒体平台&#xff0c;彻底改变了我们与世界互动的方式。作为数字社交的引领者和创新者&#xff0c;Facebook不仅在技术层面上不断突破&#xff0c;也在社会和文化领域留下了深刻的印记。本文将…

自定义Python工具箱实现mdb转出为shp或gdb格式----终章(工具免费)

一、内容提示 前边几篇文章&#xff0c;介绍了mdb地理数据库结构解析、mdb转出为shp示例&#xff0c;以及mdb转为gdb的几种技术路线探讨&#xff0c;并未对mdb转出为shp、或gdb格式进行完整实现。 为了方便使用&#xff0c;并支持更加复杂的使用场景&#xff0c;小编已将前边几…

【Elasticsearch】Elasticsearch动态映射与静态映射详解

文章目录 &#x1f4d1;前言一、Elasticsearch 映射概述1.1 什么是映射&#xff1f;1.2 映射的分类 二、动态映射2.1 动态映射的定义2.2 动态映射的优点2.3 动态映射的缺点2.4 动态映射的应用场景2.5 动态映射的配置示例 三、静态映射3.1 静态映射的定义3.2 静态映射的优点3.3 …

进阶测开日常积累 —— 性能测试!

背景&#xff1a; 这次来解释一下&#xff0c;为什么我那么多回答都不建议大家花太多时间去学性能&#xff0c;建议都是简尝即可呢~具体看正文&#xff0c;说一下性能测试相关的东西~就好了 对于新手太不友好了&#xff0c;所以别花这个时间~~而且很多大多中小企业&#xff0…

vue3单个页面进行防抖节流

防抖 <template><button id"submitButton" ref"submitButton">GET</button> </template><script lang"ts" setup> import { ref, onMounted } from vue;// 防抖函数 function debounce(func: () > void, dela…

企业出海的浪潮下,如何利用亚马逊云(AWS)更好地应对?

在全球化的浪潮下&#xff0c;越来越多的企业开始将目光投向国际市场。在这个数字化时代&#xff0c;云计算技术成为企业出海的必备利器之一。AWS云作为全球领先的云服务提供商&#xff0c;凭借其卓越的性能和完善的服务体系&#xff0c;成为众多企业出海的首选。 一、出海为什…

【DataSophon】DataSophon1.2.1服务组件开启 kerberos

目录 一、DataSophon是什么 1.1 DataSophon概述 1.2 架构概览 1.3 设计思想 二、集成组件 三、环境准备 四、安装kerberos服务 4.1 Zookeeper 4.2 HDFS 4.3 HBase 4.4 YARN 4.5 hive 【DataSophon】大数据管理平台DataSophon-1.2.1安装部署详细流程-CSDN博客 【Da…

什么是未授权访问漏洞?Hadoop Redis靶场实战——Vulfocus服务攻防

什么是未授权访问漏洞&#xff1f;Hadoop & Redis靶场实战——Vulfocus服务攻防 一、介绍 未授权访问&#xff0c;也称为未经授权的访问或非法访问&#xff0c;是指在没有得到适当权限或授权的情况下&#xff0c;个人或系统访问了网络、计算机、数据库、文件、应用程序或…

《安富莱嵌入式周报》第339期:单片机运行苹果早期Mac系统模拟器,2GHz示波器有源探头,下一代矩阵开关面包板,卡片式声音分贝器,HP经典示波器,ReRAM

周报汇总地址&#xff1a;嵌入式周报 - uCOS & uCGUI & emWin & embOS & TouchGFX & ThreadX - 硬汉嵌入式论坛 - Powered by Discuz! 视频版 https://www.bilibili.com/video/BV1Kf421Q7Lh 《安富莱嵌入式周报》第339期&#xff1a;单片机运行苹果早期Ma…

用python画蜡笔小新

代码地址: https://pan.quark.cn/s/6ae646d2fef3

Java知识点大纲

文章目录 第一阶段&#xff1a;JavaSE1、面向对象编程(基础)1)面向过程和面向对象区别2)类和对象的概述3)类的属性和方法4)创建对象内存分析5)构造方法(Construtor)及其重载6)对象类型的参数传递7)this关键字详解8)static关键字详解9)局部代码块、构造代码块和静态代码块10)pac…

mac中如何恢复因为破解脚本导致的IDEA无法启动的问题

问题 为了在mac中安装免费的2024版idea&#xff0c;导致下载了一个脚本&#xff0c;使用这个脚本后&#xff0c;但是发现idea还没有破解&#xff0c;相反导致idea无法启动&#xff0c;每次点击&#xff0c;都会弹出“cannot start IDE…” 问题排查 在访达中点击mac的应用程…