html点击出现表单弹窗

该文章展示了如何使用HTML、CSS和JavaScript创建一个点击按钮后弹出表单的弹窗效果,并附带遮罩层。通过CSS的定位和display属性控制弹窗和遮罩层的显示与隐藏,同时提供了完整的源代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

内含全部源码

项目场景:

在系统中,点击某个按钮如何弹出一个表单弹窗并且设置遮罩层,如下图所示。
在这里插入图片描述

在上图中,我们实现了点击按钮跳出弹窗的效果,主要用到的是css中position固定定位和利用js改变display的值来进行显示和隐藏页面。
编译器:idea


源码展示:

首先讲到我们的遮罩层(灰色部分),它是由点击事件来进行触发
css

 /* 遮罩层样式 */
        .overlay {
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background-color: rgba(0,0,0,0.5);
            display: none; /* 默认隐藏 */
        }

html

<div class="overlay" id="overlay"></div>

可以看到我们设置的display是默认隐藏的,那么通过点击事件来改变它原有的display就可以做到显示和隐藏效果。
弹窗效果
css

 .popup {
            position: fixed;
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%);
            padding: 20px;
            background-color: #fff;
            border: 1px solid #ccc;
            border-radius: 5px;
            display: none; /* 默认隐藏 */
        }

html

<div class="popup" id="popup">
  <label>序号:</label>
    <input type="text" value="" placeholder="请输入ID"/><br><br>
    <label>名称:</label>
    <input type="text" value="" placeholder="请输入名称" /><br><br>
    <label>类型</label>
    <select>
        <option>1</option>
        <option>2</option>
    </select><br><br>
    <button id="closebtn()">关闭</button>
    <button type="submit">提交</button></div>

上面的效果也是通过display来进行改变样式。

表单效果
css

 label {
            width: 100px;
            margin-bottom: 10px;
        }

        input[type="text"], select {
            padding: 8px;
            border: 1px solid #ccc;
            border-radius: 4px;
            font-size: 16px;
            color: #555;
        }

        select option {
            color: #555;
        }
        button {
            padding: 5px 10px;
            border-radius: 3px;
            border: none;
            background-color: #007bff;
            color: #fff;
            cursor: pointer;
        }
        button:hover {
            background-color: #0069d9;
        }

html

<label>序号:</label>
    <input type="text" value="" placeholder="请输入ID"/><br><br>
    <label>名称:</label>
    <input type="text" value="" placeholder="请输入名称" /><br><br>
    <label>类型</label>
    <select>
        <option>1</option>
        <option>2</option>
    </select><br><br>
    <button id="closebtn()">关闭</button>
    <button type="submit">提交</button>

全部源码展示:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>表单弹窗</title>
    <style>
        /* 遮罩层样式 */
        .overlay {
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background-color: rgba(0,0,0,0.5);
            display: none; /* 默认隐藏 */
        }

        /* 弹窗样式 */
        .popup {
            position: fixed;
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%);
            padding: 20px;
            background-color: #fff;
            border: 1px solid #ccc;
            border-radius: 5px;
            display: none; /* 默认隐藏 */
        }
        label {
            width: 100px;
            margin-bottom: 10px;
        }

        input[type="text"], select {
            padding: 8px;
            border: 1px solid #ccc;
            border-radius: 4px;
            font-size: 16px;
            color: #555;
        }

        select option {
            color: #555;
        }
        button {
            padding: 5px 10px;
            border-radius: 3px;
            border: none;
            background-color: #007bff;
            color: #fff;
            cursor: pointer;
        }
        button:hover {
            background-color: #0069d9;
        }

    </style>
</head>
<body>
<button id="openbtn">添加</button>
<div class="overlay" id="overlay"></div>
<div class="popup" id="popup">
<form>
    <label>
        序号:
    </label>
    <input type="text" value="" placeholder="请输入ID"/><br><br>
    <label>名称:</label>
    <input type="text" value="" placeholder="请输入名称" /><br><br>
    <label>类型</label>
    <select>
        <option>1</option>
        <option>2</option>
    </select><br><br>
    <button id="closebtn()">关闭</button>
    <button type="submit">提交</button>
</form>
</div>
<script>
    const openbtn=document.getElementById('openbtn');
    const closebtn=document.getElementById('closebtn');
    const popup=document.getElementById('popup');
    const overlay=document.getElementById('overlay');
    openbtn.addEventListener('click',function(){
        popup.style.display='block';
        overlay.style.display='block';
    })
</script>
</body>
</html>

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱吃巧克li

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值