RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / 问题 / 1590732
Accepted
ch j9
ch j9
Asked:2024-08-15 04:51:01 +0000 UTC2024-08-15 04:51:01 +0000 UTC 2024-08-15 04:51:01 +0000 UTC

如何创建相同的div?

  • 772

function openmodal() {
    document.getElementById("modalopenbackblc").classList.add("open")
}

let openModalbtn0 = document.querySelector("#openModalbtn0")

openModalbtn0.addEventListener("click", openmodal)

document.getElementById("closemodal").addEventListener("click", function() {
    document.getElementById("modalopenbackblc").classList.remove("open")
});
.container1{
        position: absolute;
        display: block;
        top: 0%;
        left: 0%;
        width: 100%;
        height: 205vh;
        background-color: darkblue;
    }


    .midblc{
        position: relative;
        display: block;
        top: 4%;
        left: 0%;
        width: 90%;
        height: 80vh;
        margin: auto;
        margin-bottom: 4%;
        background-color: darkcyan;
    }

    .touchsquaerblc{
        position: relative;
        display: inline-block;
        top: 2%;
        left: 2%;
        width: 20%;
        height: 35vh;
        margin-left: 3%;
        margin-bottom: 3%;
        border-radius: 1vh;
        overflow: hidden;
        cursor: pointer;
        background-color: cornflowerblue;
    }

    .touchsquaerblc:hover{
        transform: scale(1.05);
        transition: 0.5s;
    }

    .touchsquaerblc:not(hover){
        transform: scale(1);
        transition: 0.5s;
    }

    .squaernametxtblc{
        position: absolute;
        display: block;
        bottom: 0%;
        left: 0%;
        width: 100%;
        height: 5vh;
        vertical-align: top;
        background-color: darkgoldenrod;
    }

    .nametagtxtblc{
        position: relative;
        display: block;
        top: 2%;
        left: 0%;
        width: 100%;
        height: 6vh;
        margin: auto;
        background-color: darkorange;
    }




    .modalbackblc{
        position: fixed;
        display: block;
        top: 0%;
        left: 0%;
        width: 100%;
        height: 100%;
        z-index: 999;
        visibility: hidden;
        opacity: 0;
        transition: opacity .4s, visibility .4s;
        background-color: rgba(27, 27, 27,0.7);
    }

    .modalbackblc.open{
        visibility: visible;
        opacity: 1;
    }

    .modalfrontblc{
        position: sticky;
        display: flex;
        top: 5%;
        left: 0%;
        width: 70%;
        height: 90%;
        border-radius: 2vh;
        transition: transform .3s;
        transform: scale(0.3);
        margin: auto;
        overflow: hidden;
        background-color: #ffffff;
    }

    .modalbackblc.open .modalfrontblc{
        transform: scale(1);
    }

    .modalnametagblc{
        position: absolute;
        display: flex;
        top: 0%;
        left: 0%;
        width: 98.5%;
        height: 6vh;
        background-color: darkcyan;
    }

    .modalclosebtnblc{
        position: absolute;
        display: flex;
        top: 0%;
        right: 0%;
        width: 1.5%;
        height: 100%;
        cursor: pointer;
        background-color: darkred;
    }

    .modaltableservicesblc{
        position: relative;
        display: flexbox;
        top: 7%;
        left: 0%;
        width: 98.5%;
        height: 100%;
        background-color: darkorange;
    }

    .modaltableservices{
        position: relative;
        display: block;
        top: 0%;
        left: 0%;
        width: 100%;
        height: 8%;
        margin-bottom: 0.3%;
        background-color: darkorchid;
    }
<div class="container1">


        <div class="midblc">

            <div id="openModalbtn0" class="touchsquaerblc">
                <div class="squaernametxtblc"></div>
            </div>

        </div>

    </div>

    <div id="modalopenbackblc" class="modalbackblc">

        <div class="modalfrontblc">

            <div class="modalnametagblc"></div>

            <div id="closemodal" class="modalclosebtnblc"></div>

            <div class="modaltableservicesblc">

            </div>

    </div>

大家好!拖了这么久才写,但我已经放弃了:(

我不知道如何制作相同的卡片,唯一可以区分它们的是打开的模式窗口中的名称和内容。

我画了一个快速草图,结果我有一个卡片容器和一张必要的卡片(您需要从中制作有条件的 4 张卡片),当您单击它时,会打开一个包含信息的模式窗口。

我读了很多文章,观看了视频等,几乎所有地方他们都只是手动添加 20 张卡片,我不太喜欢。

所以我想用js来添加它们,但是我不太擅长js。

html代码

<div class="container1">


    <div class="midblc">

        <div id="openModalbtn0" class="touchsquaerblc">
            <div class="squaernametxtblc"></div>
        </div>

    </div>

</div>

<div id="modalopenbackblc" class="modalbackblc">

    <div class="modalfrontblc">

        <div class="modalnametagblc"></div>

        <div id="closemodal" class="modalclosebtnblc"></div>

        <div class="modaltableservicesblc">

        </div>

</div>

CSS代码

.container1{
    position: absolute;
    display: block;
    top: 0%;
    left: 0%;
    width: 100%;
    height: 205vh;
    background-color: darkblue;
}


.midblc{
    position: relative;
    display: block;
    top: 4%;
    left: 0%;
    width: 90%;
    height: 80vh;
    margin: auto;
    margin-bottom: 4%;
    background-color: darkcyan;
}

.touchsquaerblc{
    position: relative;
    display: inline-block;
    top: 2%;
    left: 2%;
    width: 20%;
    height: 35vh;
    margin-left: 3%;
    margin-bottom: 3%;
    border-radius: 1vh;
    overflow: hidden;
    cursor: pointer;
    background-color: cornflowerblue;
}

.touchsquaerblc:hover{
    transform: scale(1.05);
    transition: 0.5s;
}

.touchsquaerblc:not(hover){
    transform: scale(1);
    transition: 0.5s;
}

.squaernametxtblc{
    position: absolute;
    display: block;
    bottom: 0%;
    left: 0%;
    width: 100%;
    height: 5vh;
    vertical-align: top;
    background-color: darkgoldenrod;
}

.nametagtxtblc{
    position: relative;
    display: block;
    top: 2%;
    left: 0%;
    width: 100%;
    height: 6vh;
    margin: auto;
    background-color: darkorange;
}




.modalbackblc{
    position: fixed;
    display: block;
    top: 0%;
    left: 0%;
    width: 100%;
    height: 100%;
    z-index: 999;
    visibility: hidden;
    opacity: 0;
    transition: opacity .4s, visibility .4s;
    background-color: rgba(27, 27, 27,0.7);
}

.modalbackblc.open{
    visibility: visible;
    opacity: 1;
}

.modalfrontblc{
    position: sticky;
    display: flex;
    top: 5%;
    left: 0%;
    width: 70%;
    height: 90%;
    border-radius: 2vh;
    transition: transform .3s;
    transform: scale(0.3);
    margin: auto;
    overflow: hidden;
    background-color: #ffffff;
}

.modalbackblc.open .modalfrontblc{
    transform: scale(1);
}

.modalnametagblc{
    position: absolute;
    display: flex;
    top: 0%;
    left: 0%;
    width: 98.5%;
    height: 6vh;
    background-color: darkcyan;
}

.modalclosebtnblc{
    position: absolute;
    display: flex;
    top: 0%;
    right: 0%;
    width: 1.5%;
    height: 100%;
    cursor: pointer;
    background-color: darkred;
}

.modaltableservicesblc{
    position: relative;
    display: flexbox;
    top: 7%;
    left: 0%;
    width: 98.5%;
    height: 100%;
    background-color: darkorange;
}

.modaltableservices{
    position: relative;
    display: block;
    top: 0%;
    left: 0%;
    width: 100%;
    height: 8%;
    margin-bottom: 0.3%;
    background-color: darkorchid;
}

js代码

        function openmodal() {
        document.getElementById("modalopenbackblc").classList.add("open")
    }
    
    let openModalbtn0 = document.querySelector("#openModalbtn0")
    
    openModalbtn0.addEventListener("click", openmodal)
    
    document.getElementById("closemodal").addEventListener("click", function() {
        document.getElementById("modalopenbackblc").classList.remove("open")
    });

在此输入图像描述

javascript
  • 1 1 个回答
  • 65 Views

1 个回答

  • Voted
  1. Best Answer
    Володя Иванов
    2024-08-15T23:12:20Z2024-08-15T23:12:20Z

    关于卡片:您可以​​创建一个包含所有卡片数据的数组

    const cards = [
       {name: "card1", description: "description1"},
       {name: "card2", description: "description2"},
       {name: "card3", description: "description3"}
    ]
    

    例如像这样

    接下来,获取容器并创建一个循环

    const container1 = document.querySelector("#container1") // добавьте id в html
    
    for(let i = 0; i < cards.length; i++) {
        const card = cards[i]
        // дальше добавьте новый элемент в container1
        // есть разные способы сделать это, но чтобы не загромождать ответ 
        // использую innerHTML
    
        container1.innerHTML += `
            <div class="midblc">
                ${card.name}
                <div id="openModalbtn0" class="touchsquaerblc">
                    <div class="squaernametxtblc" onclick="() => openModal(${card})"></div>
                </div>
    
            </div>
        `
    }
    

    一个好主意是向 html 添加一个模式窗口

    <div class="your-classes" id="modal">
    <h1 id="modalName"></h1>
    <p id="modalDescription"></p>
    </div>
    
    const modal = document.querySelector("#modal")
    const modalName = modal.querySelector("#modalName")
    const modalDescription = modal.querySelector("#modalDescription")
    
    function openModal(card) {
    modal.style.display = "block" // flex, grid, inline, что хотите
    
    modalName.innerText = card.name
    modalDescription.innerText = card.description
    }
    

    全部在一起:

    const cards = [
        { name: "card1", description: "description1" },
        { name: "card2", description: "description2" },
        { name: "card3", description: "description3" },
    ]
    
    const container1 = document.querySelector("#container1")
    
    for (let i = 0; i < cards.length; i++) {
        const card = cards[i]
    
        const stringifiedCard = JSON.stringify(card)
    
        container1.innerHTML += `
            <div class="card">
                ${card.name}
                <button class="open-modal-button" onclick='openModal(${stringifiedCard})'>Открыть модальное окно</button>
    
            </div>
        `
    }
    
    const modal = document.querySelector("#modal")
    const modalName = modal.querySelector("#modalName")
    const modalDescription = modal.querySelector("#modalDescription")
    
    function openModal(card) {
        modal.style.display = "block"
    
        modalName.innerText = card.name
        modalDescription.innerText = card.description
    }
    
    function closeModal(card) {
        modal.style.display = "none"
    }
    .container1 {
        display: flex;
        flex-wrap: wrap;
        gap: 8px;
    }
    
    .card {
        width: 150px;
        height: 150px;
        border: 2px solid black;
    }
    
    .modal {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100svh;
        background-color: #cfcfcf;
        display: none;
    }
    <!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>
        <body>
            <div class="container1" id="container1"></div>
    
            <div class="modal" id="modal">
                <h3>Это модальное окно</h3>
                <h3 id="modalName"></h3>
                <p id="modalDescription"></p>
                <button onclick="closeModal()">Закрыть</button>
            </div>
        </body>
    </html>

    我不知道这是否会对某人有帮助

    • 0

相关问题

  • 第二个 Instagram 按钮的 CSS 属性

  • 由于模糊,内容不可见

  • 弹出队列。消息显示不正确

  • 是否可以在 for 循环中插入提示?

  • 如何将 JSON 请求中的信息输出到数据表 Vuetify vue.js?

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    我看不懂措辞

    • 1 个回答
  • Marko Smith

    请求的模块“del”不提供名为“default”的导出

    • 3 个回答
  • Marko Smith

    "!+tab" 在 HTML 的 vs 代码中不起作用

    • 5 个回答
  • Marko Smith

    我正在尝试解决“猜词”的问题。Python

    • 2 个回答
  • Marko Smith

    可以使用哪些命令将当前指针移动到指定的提交而不更改工作目录中的文件?

    • 1 个回答
  • Marko Smith

    Python解析野莓

    • 1 个回答
  • Marko Smith

    问题:“警告:检查最新版本的 pip 时出错。”

    • 2 个回答
  • Marko Smith

    帮助编写一个用值填充变量的循环。解决这个问题

    • 2 个回答
  • Marko Smith

    尽管依赖数组为空,但在渲染上调用了 2 次 useEffect

    • 2 个回答
  • Marko Smith

    数据不通过 Telegram.WebApp.sendData 发送

    • 1 个回答
  • Martin Hope
    Alexandr_TT 2020年新年大赛! 2020-12-20 18:20:21 +0000 UTC
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5