当前位置: 首页 > 知识库问答 >
问题:

从菜单项触发模态卡,但所有模态卡弹出-HTML、CSS、JS

林龙野
2023-03-14

我仍然无法正确地从导航栏项目中触发模式卡弹出窗口。我已经做了建议的更改,但是当我单击下拉菜单中的导航栏项目时,该div弹出的所有模式卡都会显示出来。

下拉列表中的每个导航栏项目都应链接到一个模式卡,单击该项目时,只有该卡会弹出。无论单击发生在何处,所有模式卡都会层叠出现。

数据目标引用已移动到导航栏项,但所有div modals都会弹出,即使在单击顶部导航栏时也是如此。尝试使用菜单项上的href并将其删除。可能是我遗漏了一些小东西。

    const item = document.querySelector(".navbar-item");
    const modalBg = document.querySelector('.modal-background');
    const modal = document.querySelector('.modal');

    item.addEventListener('click', () => {
      modal.classList.add('is-active');
    });

    modalBg.addEventListener('click', () => {
      modal.classList.remove('is-active');
    });

    <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.0/dist/js/bootstrap.bundle.min.js"></script>
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.0/dist/css/bootstrap.min.css" rel="stylesheet" />

    <section>
      <nav class="navbar has-shadow" role="navigation" aria-label="dropdown navigation" id="navbar_link_modal">
        <div class="navbar-brand">
          <a class="navbar-burger" id="burger">
            <span></span>
            <span></span>
            <span></span>
          </a>
        </div>
        <div class="navbar-menu" id="nav-links">
          <div class="navbar-start">
            <div class="navbar-item has-dropdown is-hoverable">
              <a class="navbar-link">Lumber</a>
              <div class="navbar-dropdown">
                <a class=" navbar-item" data-target="#Composite Decking">
                                    Composite Decking
                                </a>
                <a class="navbar-item" data-target="#framingLumber">
                                    Framing Lumber
                                </a>
                <a class=" navbar-item" data-target="Treated Lumber">
                                    Treated Lumber
                                </a>
                <a class="navbar-item" data-target="Plywood">
                                    Plywood
                                </a>
              </div>
            </div>
          </div>
        </div>
      </nav>
    </section>

    <!--Modal-->
    <div class="modal is-active" id="modal">
      <div class="modal-background"></div>
      <div class="modal-card" id="framingLumber">
        <header class="modal-card-head">
          <p class="modal-card-title">Framing Lumber</p>
          <button class="delete" aria-label="close"></button>
        </header>
        <section class="modal-card-body">
          <img src="pics/lumberOnline.jpg" alt="">
        </section>
        <footer class="modal-card-foot">
          <p>We can meet your framing lumber needs. Including long length lumber.</p>
        </footer>
      </div>
      <div class="modal-card" id="decking">
        <header class="modal-card-head">
          <p class="modal-card-title">Composite Decking</p>
          <button class="delete" aria-label="close"></button>
        </header>
        <section class="modal-card-body">
          <p>Insert picture of composite decking here.</p>
        </section>
        <footer class="modal-card-foot">
          <p>Less maintenance, more durable and a longer life. Let composite decking make your life easier!
          </p>
        </footer>
      </div>
      <div class="modal-card" id="treatedLumber">
        <header class="modal-card-head">
          <p class="modal-card-title">Treated Lumber</p>
          <button class="delete" aria-label="close"></button>
        </header>
        <section class="modal-card-body">
          <img src="pics/treatedLumberOnline_cropped.jpg" alt="">
        </section>
        <footer class="modal-card-foot">
          <p>Use pressure treated lumber for jobs where the lumber will be exposed to weather.
          </p>
        </footer>
      </div>
      <div class="modal-card" id="plywood">
        <header class="modal-card-head">
          <p class="modal-card-title">Plywood</p>
          <button class="delete" aria-label="close"></button>
        </header>
        <section class="modal-card-body">
          <img src="pics/plywoodOnline_cropped.jpg" alt="">
        </section>
        <footer class="modal-card-foot">
          <p>Different types of plywood.....
          </p>
        </footer>
      </div>
    </div>

共有1个答案

艾成益
2023-03-14

使用引导V4。6.x

modalBg.addEventListener('click', () => {
    modal.modal('show');
 });

modalBg.addEventListener('click', () => {
  modal.modal('hide');
});

使用引导V5。0.x

 modalBg.addEventListener('click', () => {
     modal.show();
 });

 modalBg.addEventListener('click', () => {
      modal.hide();
 });
 类似资料:
  • 我对编码还不熟悉,希望有人能帮助我理解哪里出了问题。我在从导航栏项目获取模式卡弹出窗口以触发时遇到问题。到目前为止,我所尝试的一切都会触发顶部菜单项的模态。下拉列表中的每个导航栏项都有一个指向模式卡的链接<提前感谢您的帮助!!

  • 我正在用电子创建一个网络浏览器,我需要帮助创建一个弹出卡。我到处寻找这样的东西,但我什么也找不到。 我需要创建的弹出窗口与提供的图像类似。类似于chrome扩展弹出框(最好是chrome连接弹出框),它们将用于创建连接弹出框、扩展弹出框等。 Chrome扩展弹出

  • 我正试图从bootstrap beta 4.0中的下拉菜单项中创建一个模式。它似乎不起作用。我在页面上的其他modals上使用了相同的格式,它们正在工作。 模式如下:

  • 我有一个弹出列表,建议搜索结果有点像在谷歌上搜索。我有2个事件监听器,应该显示和隐藏弹出窗口,如果你点击该地区。它适用于点击,但如果你试图用标签导航,它只会让它永远打开。 使用选项卡导航时,如何使focusout事件发生?

  • 当我像下面的例子一样点击选项卡2时,我如何将选项卡1 Neumorphic css翻译成选项卡2呢,就像从选项卡1滑到选项卡2一样? https://dribble.com/shots/10805627-neumorphic-tab

  • 本文向大家介绍layui添加动态菜单与选项卡 AJAX请求的例子,包括了layui添加动态菜单与选项卡 AJAX请求的例子的使用技巧和注意事项,需要的朋友参考一下 如下所示: HTML index.js 菜单JSON 效果截图 以上这篇layui添加动态菜单与选项卡 AJAX请求的例子就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持呐喊教程。